From: Paolo Bonzini <pbonzini@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
Keith Busch <keith.busch@intel.com>,
patches@linaro.org, qemu-block@nongnu.org,
"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 0/5] replace qemu_fls() with pow2ceil()/pow2floor()
Date: Thu, 23 Jul 2015 18:54:52 +0200 [thread overview]
Message-ID: <55B11C5C.8050507@redhat.com> (raw)
In-Reply-To: <1437649738-13885-1-git-send-email-peter.maydell@linaro.org>
On 23/07/2015 13:08, Peter Maydell wrote:
> We have a qemu_fls() function which is just a silly wrapper
> around clz32() and which is used in only a handful of places
> in the codebase. It turns out that all of those are really
> trying to round up or down to a power of 2, which is something
> we have utility functions for. This series replaces all
> the qemu_fls() calls with pow2ceil() or pow2floor(), and then
> removes the now-unused function.
The series looks good, but I'd prefer (especially for patch 4 which is
in a fast path) if pow2ceil and pow2floor were made inline.
BTW,
return 1ULL << (64 - nlz);
can be implemented as "rotate_right(1ULL, nlz)" (the latter is (1ULL <<
(64 - nlz)) | (1ULL >> nlz), which only differs in the undefined case
nlz == 0). However, this is probably something for the compiler to
implement, not really something to do in our sources.
Paolo
> For the case where you really want to do bit counting rather
> than just power-of-2 rounding, you should use the clz/clo
> functions directly.
>
> (I've set myself a little goal of "try to do one cleanup a
> day"; that may be a bit ambitious, so we'll see...)
>
> Peter Maydell (5):
> hw/pci: Use pow2ceil() rather than hand-calculation
> hw/virtio/virtio-pci: Use pow2ceil() rather than hand-calculation
> hw/block/nvme.c: Use pow2ceil() rather than hand-calculation
> exec.c: Use pow2floor() rather than hand-calculation
> Remove unused qemu_fls function
>
> exec.c | 4 +---
> hw/block/nvme.c | 2 +-
> hw/pci/msix.c | 4 +---
> hw/pci/pci.c | 4 +---
> hw/virtio/virtio-pci.c | 4 +---
> include/qemu-common.h | 1 -
> util/cutils.c | 5 -----
> 7 files changed, 5 insertions(+), 19 deletions(-)
>
next prev parent reply other threads:[~2015-07-23 16:55 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-23 11:08 [Qemu-devel] [PATCH 0/5] replace qemu_fls() with pow2ceil()/pow2floor() Peter Maydell
2015-07-23 11:08 ` [Qemu-devel] [PATCH 1/5] hw/pci: Use pow2ceil() rather than hand-calculation Peter Maydell
2015-07-23 11:08 ` [Qemu-devel] [PATCH 2/5] hw/virtio/virtio-pci: " Peter Maydell
2015-07-23 11:08 ` [Qemu-devel] [PATCH 3/5] hw/block/nvme.c: " Peter Maydell
2015-07-23 11:08 ` [Qemu-devel] [PATCH 4/5] exec.c: Use pow2floor() " Peter Maydell
2015-07-23 11:08 ` [Qemu-devel] [PATCH 5/5] Remove unused qemu_fls function Peter Maydell
2015-07-23 11:09 ` [Qemu-devel] [PATCH 0/5] replace qemu_fls() with pow2ceil()/pow2floor() Paolo Bonzini
2015-07-23 16:54 ` Paolo Bonzini [this message]
2015-07-23 20:10 ` Peter Maydell
2015-07-24 5:10 ` Paolo Bonzini
2015-07-24 8:39 ` Peter Maydell
2015-07-24 8:48 ` Paolo Bonzini
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=55B11C5C.8050507@redhat.com \
--to=pbonzini@redhat.com \
--cc=keith.busch@intel.com \
--cc=kwolf@redhat.com \
--cc=mst@redhat.com \
--cc=patches@linaro.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/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: link
Be 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.