From: David Mosberger <davidm@napali.hpl.hp.com>
To: linux-ia64@vger.kernel.org
Subject: Re: [mpm@selenic.com: Re: buggy ia64_fls() ? (was Re: /dev/random
Date: Fri, 08 Apr 2005 19:05:06 +0000 [thread overview]
Message-ID: <16982.54754.320970.600789@napali.hpl.hp.com> (raw)
In-Reply-To: <20050408103324.6c5231df.akpm@osdl.org>
I'm quite sure I wrote ia64_fls() long before there was the generic
fls() so probably the bug was introduced when that happened. Changing
ia64_fls() would be wrong, since the behavior of that function is
correct (in "as intended"). I'll take a look at fixing this, since I
was apparently the one who introduced the "broken" fls() and since we
may want to use a GCC builtin anyhow. Also, the use of the
floating-point unit, while optimal from an architectural point of
view, may not be optimal from a microarchitecture point since all
McKinley-derived cores have relatively high latency for moving data
from the integer register file to the fp register file (and vice
versa). High time to take another look.
--david
>>>>> On Fri, 8 Apr 2005 10:33:24 -0700, Andrew Morton <akpm@osdl.org> said:
Andrew> I agree that ia64's fls() is broken.
Andrew> So the random driver is presently busted on ia64?
Andrew> Matt Mackall <mpm@selenic.com> wrote:
>> Realized you're not on the cc list. This one's surprising.
>>
>> ----- Forwarded message from Matt Mackall <mpm@selenic.com> -----
>>
>> Date: Fri, 8 Apr 2005 09:27:46 -0700 From: Matt Mackall
>> <mpm@selenic.com> To: Simon Derr <Simon.Derr@bull.net> Cc: Yura
>> Pakhuchiy <pakhuchiy@iptel.by>, Patrice Martinez
>> <patrice.martinez@ext.bull.net>, linux-kernel@vger.kernel.org
>> Subject: Re: buggy ia64_fls() ? (was Re: /dev/random problem on
>> 2.6.12-rc1)
>>
>> On Fri, Apr 08, 2005 at 02:12:04PM +0200, Simon Derr wrote: > I
>> enabled the debug messages in random.c and I think I found the
>> problem > lying in the IA64 version of fls().
>>
>> Good catch.
>>
>> > It turns out that the generic and IA64 versions of fls()
>> disagree:
>> >
>> > (output from a small test program)
>> >
>> > x ia64_fls(x) generic_fls(x)
>> >
>> > i=-1, t=0, ia64: -65535 et generic:0 > i=0, t=1, ia64: 0 et
>> generic:1 > i=1, t=2, ia64: 1 et generic:2 > i=2, t=4, ia64: 2 et
>> generic:3 > i=3, t=8, ia64: 3 et generic:4
>>
>> Well PPC at least sez:
>>
>> /* * fls: find last (most-significant) bit set. * Note fls(0) >> 0, fls(1) = 1, fls(0x80000000) = 32. */
>>
>> And that agrees with the generic code (used by x86). So I think
>> IA64 is probably wrong here indeed. It's amazing that the other
>> users of fls don't blow up spectacularly.
>>
>> > I tried to fix it with an ia64 version that would give the same
>> result as > the generic version, but the kernel did not boot, I
>> guess some functions > rely on the ""broken"" ia64_fls()
>> behaviour.
>> >
>> > So I just changed fls() to use generic_fls() instead of
>> ia64_fls().
>>
>> If the "fixed" version didn't boot, how did the "alternate fixed"
>> version boot?
>>
>> --
>> Mathematics is the supreme nostalgia of our time.
>>
>> ----- End forwarded message -----
>>
>> --
>> Mathematics is the supreme nostalgia of our time.
Andrew> - To unsubscribe from this list: send the line "unsubscribe
Andrew> linux-ia64" in the body of a message to
Andrew> majordomo@vger.kernel.org More majordomo info at
Andrew> http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2005-04-08 19:05 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-08 17:33 [mpm@selenic.com: Re: buggy ia64_fls() ? (was Re: /dev/random Andrew Morton
2005-04-08 17:48 ` [mpm@selenic.com: Re: buggy ia64_fls() ? (was Re: /dev/random problem on 2.6.12-rc1)] Matt Mackall
2005-04-08 18:02 ` [mpm@selenic.com: Re: buggy ia64_fls() ? (was Re: /dev/random Andrew Morton
2005-04-08 19:05 ` David Mosberger [this message]
2005-04-08 20:46 ` [mpm@selenic.com: Re: buggy ia64_fls() ? (was Re: /dev/random problem on 2.6.12-rc1)] David Mosberger
2005-04-08 22:49 ` Matt Mackall
2005-04-08 23:01 ` David Mosberger
2005-04-08 23:02 ` Luck, Tony
2005-04-08 23:15 ` Matt Mackall
2005-04-08 23:17 ` Matt Mackall
2005-04-08 23:19 ` David Mosberger
2005-04-08 23:49 ` David Mosberger
2005-04-09 0:21 ` [mpm@selenic.com: Re: buggy ia64_fls() ? (was Re: /dev/random David Mosberger
2005-04-09 0:28 ` [mpm@selenic.com: Re: buggy ia64_fls() ? (was Re: /dev/random problem on 2.6.12-rc1)] Matt Mackall
2005-04-09 0:34 ` [mpm@selenic.com: Re: buggy ia64_fls() ? (was Re: /dev/random Arthur Kepner
2005-04-09 0:46 ` [mpm@selenic.com: Re: buggy ia64_fls() ? (was Re: /dev/random problem on 2.6.12-rc1)] Grant Grundler
2005-04-09 3:00 ` Grant Grundler
2005-04-09 4:05 ` David Mosberger
2005-04-09 4:32 ` David Mosberger
2005-04-09 5:09 ` [mpm@selenic.com: Re: buggy ia64_fls() ? (was Re: /dev/random David Mosberger
2005-04-09 5:16 ` [mpm@selenic.com: Re: buggy ia64_fls() ? (was Re: /dev/random problem on 2.6.12-rc1)] Grant Grundler
2005-04-09 6:00 ` David Mosberger
2005-04-22 3:50 ` [mpm@selenic.com: Re: buggy ia64_fls() ? (was Re: /dev/random Andrew Morton
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=16982.54754.320970.600789@napali.hpl.hp.com \
--to=davidm@napali.hpl.hp.com \
--cc=linux-ia64@vger.kernel.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.