From: David Howells <dhowells@redhat.com>
To: "Luck, Tony" <tony.luck@intel.com>
Cc: David Howells <dhowells@redhat.com>,
torvalds@osdl.org, akpm@osdl.org, linux-kernel@vger.kernel.org,
linux-arch@vger.kernel.org
Subject: Re: [PATCH 4/6] Implement a general log2 facility in the kernel
Date: Wed, 13 Sep 2006 17:50:52 +0100 [thread overview]
Message-ID: <4005.1158166252@warthog.cambridge.redhat.com> (raw)
In-Reply-To: <20060913155734.GA6355@intel.com>
Luck, Tony <tony.luck@intel.com> wrote:
> > This facility provides three entry points:
> >
> > log2() Log base 2 of u32
> > ll_log2() Log base 2 of u64
> > long_log2() Log base 2 of unsigned long
>
> The names are rather counter-intuitive. "ll" sounds like "long long", so
> why does it opearte on *unsigned* 64-bit? Ditto for "long_log2()".
> Perhaps they should be log2_u32(), log2_u64(), etc.
Well, given that you can't represent a log of a negative number, I'm not sure
it matters.
Note that long_log2() already exists and is of arch-dependent size.
> Even better if someone can come up with the right pre-processor magic
> using sizeof/typeof so that you could just use "log2(any type)"
I then end up with 32 of these per usage if I pass in a definite 32-bit value:
warning: comparison is always false due to limited range of data type
because of the:
n >= (1ULL << 63) ? 63 : \
n >= (1ULL << 62) ? 62 : \
n >= (1ULL << 61) ? 61 : \
...
in ll_log2().
David
next prev parent reply other threads:[~2006-09-13 16:51 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-13 13:02 [PATCH 1/6] FRV: Fix fls() to handle bit 31 being set correctly David Howells
2006-09-13 13:02 ` [PATCH 2/6] FRV: Implement fls64() David Howells
2006-09-13 13:02 ` [PATCH 3/6] FRV: Optimise ffs() David Howells
2006-09-13 13:03 ` [PATCH 4/6] Implement a general log2 facility in the kernel David Howells
2006-09-13 15:57 ` Luck, Tony
2006-09-13 16:50 ` David Howells [this message]
2006-09-13 16:17 ` Adrian Bunk
2006-09-13 16:31 ` Matthew Wilcox
2006-09-13 16:38 ` Russell King
2006-09-13 16:56 ` David Howells
2006-09-13 18:38 ` Geert Uytterhoeven
2006-09-13 18:45 ` Russell King
2006-09-13 19:09 ` Geert Uytterhoeven
2006-09-13 13:03 ` [PATCH 5/6] Alter get_order() so that it can make use of long_log2() on a constant David Howells
2006-09-13 13:03 ` [PATCH 6/6] Alter roundup_pow_of_two() " David Howells
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=4005.1158166252@warthog.cambridge.redhat.com \
--to=dhowells@redhat.com \
--cc=akpm@osdl.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tony.luck@intel.com \
--cc=torvalds@osdl.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.