On 21 Aug 2003 19:55:32 -0500
Steve Lord <lord@xxxxxxx> wrote:
> On Thu, 2003-08-21 at 16:00, Andi Kleen wrote:
> > Chris Meadors <clubneon@xxxxxxxxxxxxxx> writes:
> > Better report it to linux-xfs@xxxxxxxxxxx (cc'ed) too.
> > > I'm trying to get a 2.6.0-test kernel to boot on my Opteron system. It
> > > has SuSE's 2.4.19-SMP kernel on it now, and it boots with that, mounts
> > > the XFS root just fine. But I build a vanilla 2.6.0-test3 with no
> > > module support, everything included that I would need. The last line
> > > that it prints during boot is the NET4.0
> > >
> > > Repeated presses of Alt+SysRq+P seems to show RIP looping in xfs_xlatesb
> > > and xfs_lowbit64.
> Seems to suggest a platform specific problem with this code, Andi,
> didn't you write the function behind xfs_lowbit64?
First at least the comment on top of xfs_lowbit64() is not correct.
ffs() only handles an 32bit argument, not 64bit. Hope that isn't a problem.
Hmm, one difference is that the x86-64 ffs will return 32 on zero, while
i386 returns -1.
Does this patch fix it?
--- linux-2.6.0test3-amd64/include/asm-x86_64/bitops.h-o 2003-07-11
+++ linux-2.6.0test3-amd64/include/asm-x86_64/bitops.h 2003-08-22
@@ -466,7 +466,7 @@
- : "=r" (r) : "g" (x), "r" (32));
+ : "=r" (r) : "g" (x), "r" (-1));
If that doesn't help I would also try it with -O1 and possibly a different
(e.g. gcc 3.2 if you're using 3.3 or the other way round) to rule out a