From: Michael Mueller <mimu@linux.vnet.ibm.com> To: Alexander Graf <agraf@suse.de> Cc: Richard Henderson <rth@twiddle.net>, "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>, "kvm@vger.kernel.org" <kvm@vger.kernel.org>, "linux-s390@vger.kernel.org" <linux-s390@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Gleb Natapov <gleb@kernel.org>, Christian Borntraeger <borntraeger@de.ibm.com>, "Jason J. Herne" <jjherne@linux.vnet.ibm.com>, Cornelia Huck <cornelia.huck@de.ibm.com>, Paolo Bonzini <pbonzini@redhat.com>, Andreas Faerber <afaerber@suse.de> Subject: Re: [Qemu-devel] [RFC PATCH v2 10/15] cpu-model/s390: Add cpu class initialization routines Date: Fri, 20 Feb 2015 20:35:05 +0100 [thread overview] Message-ID: <20150220203505.68a47992@bee> (raw) In-Reply-To: <5F2B0AC8-FE9F-4107-90DA-B2E6A3C262EC@suse.de> On Fri, 20 Feb 2015 20:21:45 +0100 Alexander Graf <agraf@suse.de> wrote: > > > > > Am 20.02.2015 um 19:59 schrieb Michael Mueller <mimu@linux.vnet.ibm.com>: > > > > On Fri, 20 Feb 2015 10:11:55 -0800 > > Richard Henderson <rth@twiddle.net> wrote: > > > >>> +static inline uint64_t big_endian_bit(unsigned long nr) > >>> +{ > >>> + return 1ul << (BITS_PER_LONG - (nr % BITS_PER_LONG)); > >>> +}; > >> > >> This is buggy. NR=0 should map to 63, not 64. > > > > I'm sure I was asked to replace my constant 64 and 63 with that defines and at the end I > > messed it up... :-( > > > >> > >>> + return !!(*ptr & big_endian_bit(nr)); > >> > >> Personally I dislike !! as an idiom. Given that big_endian_bit isn't used > >> anywhere else, can we integrate it and change this to > >> > >> static inline int test_facility(unsigned long nr, uint64_t *fac_list) > >> { > >> unsigned long word = nr / BITS_PER_LONG; > >> unsigned long be_bit = 63 - (nr % BITS_PER_LONG); > >> return (fac_list[word] >> be_bit) & 1; > >> } > > > > Yes, I just use it in this context. I will integrate your version. > > > > BTW I changed the whole facility defining code to be generated by an external helper at > > compile time. That is more simple and safe to change. I will send it with v3. See attachment > > for an example of the generated header file. > > Please make sure to use ULL with constants and uint64_t on variables. Long is almost always > wrong in QEMU. yep > > Alex > > > > > Thanks, > > Michael > > > > <gen-facilities.h> >
WARNING: multiple messages have this Message-ID (diff)
From: Michael Mueller <mimu@linux.vnet.ibm.com> To: Alexander Graf <agraf@suse.de> Cc: "linux-s390@vger.kernel.org" <linux-s390@vger.kernel.org>, "kvm@vger.kernel.org" <kvm@vger.kernel.org>, Gleb Natapov <gleb@kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>, Christian Borntraeger <borntraeger@de.ibm.com>, "Jason J. Herne" <jjherne@linux.vnet.ibm.com>, Cornelia Huck <cornelia.huck@de.ibm.com>, Paolo Bonzini <pbonzini@redhat.com>, Andreas Faerber <afaerber@suse.de>, Richard Henderson <rth@twiddle.net> Subject: Re: [Qemu-devel] [RFC PATCH v2 10/15] cpu-model/s390: Add cpu class initialization routines Date: Fri, 20 Feb 2015 20:35:05 +0100 [thread overview] Message-ID: <20150220203505.68a47992@bee> (raw) In-Reply-To: <5F2B0AC8-FE9F-4107-90DA-B2E6A3C262EC@suse.de> On Fri, 20 Feb 2015 20:21:45 +0100 Alexander Graf <agraf@suse.de> wrote: > > > > > Am 20.02.2015 um 19:59 schrieb Michael Mueller <mimu@linux.vnet.ibm.com>: > > > > On Fri, 20 Feb 2015 10:11:55 -0800 > > Richard Henderson <rth@twiddle.net> wrote: > > > >>> +static inline uint64_t big_endian_bit(unsigned long nr) > >>> +{ > >>> + return 1ul << (BITS_PER_LONG - (nr % BITS_PER_LONG)); > >>> +}; > >> > >> This is buggy. NR=0 should map to 63, not 64. > > > > I'm sure I was asked to replace my constant 64 and 63 with that defines and at the end I > > messed it up... :-( > > > >> > >>> + return !!(*ptr & big_endian_bit(nr)); > >> > >> Personally I dislike !! as an idiom. Given that big_endian_bit isn't used > >> anywhere else, can we integrate it and change this to > >> > >> static inline int test_facility(unsigned long nr, uint64_t *fac_list) > >> { > >> unsigned long word = nr / BITS_PER_LONG; > >> unsigned long be_bit = 63 - (nr % BITS_PER_LONG); > >> return (fac_list[word] >> be_bit) & 1; > >> } > > > > Yes, I just use it in this context. I will integrate your version. > > > > BTW I changed the whole facility defining code to be generated by an external helper at > > compile time. That is more simple and safe to change. I will send it with v3. See attachment > > for an example of the generated header file. > > Please make sure to use ULL with constants and uint64_t on variables. Long is almost always > wrong in QEMU. yep > > Alex > > > > > Thanks, > > Michael > > > > <gen-facilities.h> >
next prev parent reply other threads:[~2015-02-20 19:35 UTC|newest] Thread overview: 120+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-02-17 14:23 [RFC PATCH v2 00/15] QEMU: s390: cpu model implementation Michael Mueller 2015-02-17 14:23 ` [Qemu-devel] " Michael Mueller 2015-02-17 14:23 ` [RFC PATCH v2 01/15] cpu-model: Introduce probe mode for machine none Michael Mueller 2015-02-17 14:23 ` [Qemu-devel] " Michael Mueller 2015-02-17 14:24 ` [RFC PATCH v2 02/15] cpu-model: Introduce option --probe to switch into probe mode Michael Mueller 2015-02-17 14:24 ` [Qemu-devel] " Michael Mueller 2015-02-17 14:24 ` Michael Mueller 2015-02-17 19:16 ` [Qemu-devel] " Eric Blake 2015-02-17 19:16 ` Eric Blake 2015-02-18 9:08 ` [Qemu-devel] " Michael Mueller 2015-02-18 9:08 ` Michael Mueller 2015-02-18 9:08 ` Michael Mueller 2015-02-17 14:24 ` [RFC PATCH v2 03/15] cpu-model: Introduce stub routine cpu_desc_avail Michael Mueller 2015-02-17 14:24 ` [Qemu-devel] " Michael Mueller 2015-02-17 14:24 ` Michael Mueller 2015-02-17 14:24 ` [RFC PATCH v2 04/15] cpu-model/s390: Introduce S390 CPU models Michael Mueller 2015-02-17 14:24 ` [Qemu-devel] " Michael Mueller 2015-02-17 14:24 ` Michael Mueller 2015-02-20 13:54 ` Alexander Graf 2015-02-20 13:54 ` [Qemu-devel] " Alexander Graf 2015-02-20 15:00 ` Michael Mueller 2015-02-20 15:00 ` Michael Mueller 2015-02-20 15:22 ` Alexander Graf 2015-02-20 15:22 ` Alexander Graf 2015-02-20 15:49 ` Michael Mueller 2015-02-20 15:49 ` Michael Mueller 2015-02-20 16:57 ` Alexander Graf 2015-02-20 16:57 ` Alexander Graf 2015-02-20 17:37 ` Michael Mueller 2015-02-20 17:37 ` Michael Mueller 2015-02-20 17:50 ` Alexander Graf 2015-02-20 17:50 ` Alexander Graf 2015-02-20 19:43 ` Michael Mueller 2015-02-20 19:43 ` Michael Mueller 2015-02-20 19:55 ` Alexander Graf 2015-02-20 19:55 ` Alexander Graf 2015-02-23 12:56 ` Christian Borntraeger 2015-02-23 12:56 ` Christian Borntraeger 2015-02-23 13:27 ` Christian Borntraeger 2015-02-23 13:27 ` Christian Borntraeger 2015-02-20 13:55 ` Alexander Graf 2015-02-20 13:55 ` [Qemu-devel] " Alexander Graf 2015-02-20 15:02 ` Michael Mueller 2015-02-20 15:02 ` Michael Mueller 2015-02-17 14:24 ` [RFC PATCH v2 05/15] cpu-model/s390: Introduce S390 CPU facilities Michael Mueller 2015-02-17 14:24 ` [Qemu-devel] " Michael Mueller 2015-02-17 14:24 ` [RFC PATCH v2 06/15] cpu-model/s390: Define cpu model specific facility lists Michael Mueller 2015-02-17 14:24 ` [Qemu-devel] " Michael Mueller 2015-02-17 14:24 ` [RFC PATCH v2 07/15] cpu-model/s390: Add cpu model alias definition routines Michael Mueller 2015-02-17 14:24 ` [Qemu-devel] " Michael Mueller 2015-02-17 14:24 ` [RFC PATCH v2 08/15] cpu-model/s390: Update linux-headers/asm-s390/kvm.h Michael Mueller 2015-02-17 14:24 ` [Qemu-devel] " Michael Mueller 2015-02-17 14:24 ` [RFC PATCH v2 09/15] cpu-model/s390: Add KVM VM attribute interface routines Michael Mueller 2015-02-17 14:24 ` [Qemu-devel] " Michael Mueller 2015-02-20 13:59 ` Alexander Graf 2015-02-20 13:59 ` [Qemu-devel] " Alexander Graf 2015-02-20 15:18 ` Michael Mueller 2015-02-20 15:18 ` Michael Mueller 2015-02-20 16:59 ` Alexander Graf 2015-02-20 16:59 ` Alexander Graf 2015-02-20 18:42 ` Michael Mueller 2015-02-20 18:42 ` Michael Mueller 2015-02-17 14:24 ` [RFC PATCH v2 10/15] cpu-model/s390: Add cpu class initialization routines Michael Mueller 2015-02-17 14:24 ` [Qemu-devel] " Michael Mueller 2015-02-17 14:24 ` Michael Mueller 2015-02-20 16:02 ` Richard Henderson 2015-02-20 16:02 ` [Qemu-devel] " Richard Henderson 2015-02-20 16:12 ` Michael Mueller 2015-02-20 16:12 ` Michael Mueller 2015-02-20 16:12 ` Michael Mueller 2015-02-20 16:27 ` [Qemu-devel] " Michael Mueller 2015-02-20 16:27 ` Michael Mueller 2015-02-20 16:34 ` Andreas Färber 2015-02-20 16:34 ` Andreas Färber 2015-02-20 16:55 ` Michael Mueller 2015-02-20 18:11 ` Richard Henderson 2015-02-20 18:11 ` [Qemu-devel] " Richard Henderson 2015-02-20 18:59 ` Michael Mueller 2015-02-20 18:59 ` Michael Mueller 2015-02-20 19:21 ` Alexander Graf 2015-02-20 19:21 ` Alexander Graf 2015-02-20 19:35 ` Michael Mueller [this message] 2015-02-20 19:35 ` Michael Mueller 2015-02-17 14:24 ` [RFC PATCH v2 11/15] cpu-model/s390: Add QMP command query-cpu-model Michael Mueller 2015-02-17 14:24 ` [Qemu-devel] " Michael Mueller 2015-02-17 14:24 ` Michael Mueller 2015-02-17 18:03 ` [Qemu-devel] " Eric Blake 2015-02-18 8:39 ` Michael Mueller 2015-02-18 8:39 ` Michael Mueller 2015-02-18 8:39 ` Michael Mueller 2015-02-17 14:24 ` [RFC PATCH v2 12/15] cpu-model/s390: Extend QMP command query-cpu-definitions Michael Mueller 2015-02-17 14:24 ` [Qemu-devel] " Michael Mueller 2015-02-17 18:09 ` Eric Blake 2015-02-18 9:29 ` Michael Mueller 2015-02-18 9:29 ` Michael Mueller 2015-02-18 9:29 ` Michael Mueller 2015-02-17 14:24 ` [RFC PATCH v2 13/15] cpu-model/s390: Add processor property routines Michael Mueller 2015-02-17 14:24 ` [Qemu-devel] " Michael Mueller 2015-02-20 14:03 ` Alexander Graf 2015-02-20 14:03 ` [Qemu-devel] " Alexander Graf 2015-02-20 15:32 ` Michael Mueller 2015-02-20 15:32 ` Michael Mueller 2015-02-20 15:41 ` Andreas Färber 2015-02-20 15:41 ` Andreas Färber 2015-02-20 16:04 ` Michael Mueller 2015-02-20 16:04 ` Michael Mueller 2015-02-20 16:28 ` Andreas Färber 2015-02-20 16:28 ` Andreas Färber 2015-02-20 16:53 ` Michael Mueller 2015-02-20 16:53 ` Michael Mueller 2015-02-20 16:05 ` Michael Mueller 2015-02-20 16:05 ` Michael Mueller 2015-02-20 17:00 ` Alexander Graf 2015-02-20 17:00 ` Alexander Graf 2015-02-20 19:29 ` Michael Mueller 2015-02-20 19:29 ` Michael Mueller 2015-02-17 14:24 ` [RFC PATCH v2 14/15] cpu-model/s390: Add cpu model selection routine Michael Mueller 2015-02-17 14:24 ` [Qemu-devel] " Michael Mueller 2015-02-17 14:24 ` [RFC PATCH v2 15/15] cpu-model/s390: Enable S390 cpu model Michael Mueller 2015-02-17 14:24 ` [Qemu-devel] " Michael Mueller
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20150220203505.68a47992@bee \ --to=mimu@linux.vnet.ibm.com \ --cc=afaerber@suse.de \ --cc=agraf@suse.de \ --cc=borntraeger@de.ibm.com \ --cc=cornelia.huck@de.ibm.com \ --cc=gleb@kernel.org \ --cc=jjherne@linux.vnet.ibm.com \ --cc=kvm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-s390@vger.kernel.org \ --cc=pbonzini@redhat.com \ --cc=qemu-devel@nongnu.org \ --cc=rth@twiddle.net \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.