[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Fwd: Bug in 1.0-5336 for ia64 (Nvidia drivers)



I sent the following email to Nvidia about a bug in their
most recent drivers for ia64. I will add that this bug occurs
in a section of code that precedes the alloc instruction
within the subroutine, a practice I cannot find recommended
anywhere. My work around was to add a "bogus" subroutine
to the calling routine that required one more out slot. This
worked and I now have FlightGear running again.

----------  Forwarded Message  ----------

Subject: Bug in 1.0-5336 for ia64
Date: Tue, 29 Jun 2004 11:27:53 -0700
From: Richard Harke <rharke@earthlink.net>
To: linux-bugs@nvidia.com

Bad news: I have run into a bug in the driver set for ia64
Good news: I can tell you exactly what the bug is so it should
be easy to fix.
I am refering explicitly to:
NVIDIA-Linux-ia64-1.0-5336-pkg1.run

When I run FlightGear, flight simulator, I get an illegal
instruction fault and of course the whole program aborts
The machine is an HP zx2000 running debian linux
kernel is 2.4.25 libc is glibc-2.3.2.ds1-13 X11 is 4.3.0
from debian unstable.

CAUTION: ia64 assembly language discussed, please let real
programmer read this.

I ran it again under GDB It shows the illegeal instruction to be in
_nv003618gl () from /usr/lib/tls/libGLcore.so.1

The instruction in question is     mov   r34 = pr
At first this does not look like an illegal instruction but the problem
is that r34 is not visible in the current frame. This routine takes
two int's and a float so the calling frame has just 2 output registers
meaning only r32 and r33 are visible until the called routine
does an alloc instruction. Of course, in many cases this will
"accidentally" work because the caller has other calls that
require more than 2 output registers and the compiler will set
the number of output registers to the max needed.

For the time being, I will try a work around on flight gear and hope
I don't hit more instances of this bug. It looks like the kind of thing that
could occur in more than one place.

The switch from pre tls libc to tls libc has been very painful for
me and I really look forward to the availablility of Nvidia
drivers that support kernal 2.6.x  But I do hope you fix this bug first.


Richard Harke

-------------------------------------------------------



Reply to: