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

sigill (illegal instruction) in latest nvidia 169.12 in lenny



Today's dist-upgrade included nvidia-glx 169.12, which obsoleted my
previous install of 100.14.12. This meant that I could upgrade
(finally) to kernel 2.6.24-1 which i previously installed the
nvidia-kernel 169.12 from nvidia-kernel-source, after doing the
module-assistant thing with the 2.6.24.1 kernel, after using 100.14.12
for quite sometime with kernel 2.6.22-2 (or 3).

But the GL code (which I suspect is nvidia-glx) doesn't work anymore.
Even things like glxgears fail now with "illegal instruction".

For instance (this morning's attempt with stellarium)

dfox@m206-157:/usr/local/stellarium/src$ cd ../builds/unix
dfox@m206-157:/usr/local/stellarium/builds/unix$ cd src/
dfox@m206-157:/usr/local/stellarium/builds/unix/src$ gdb stellarium
GNU gdb 6.7.1-debian
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/i686/cmov/libthread_db.so.1".
(gdb) run
Starting program: /usr/local/stellarium/builds/unix/src/stellarium
[Thread debugging using libthread_db enabled]
[New Thread 0xb5f73740 (LWP 4189)]
 -------------------------------------------------------
[ This is Stellarium 0.10.0 - http://www.stellarium.org ]
[ Copyright (C) 2000-2008 Fabien Chereau et al          ]
 -------------------------------------------------------
File search paths:
  0 .  "/home/dfox/.stellarium"
  1 .  "/usr/local/share/stellarium"
Config file is:  "/home/dfox/.stellarium/config.ini"
Attempting to use an existing older config file.
Sky language is  "en"
Application language is  "en"
Loading Solar System data ...

Program received signal SIGILL, Illegal instruction.
[Switching to Thread 0xb5f73740 (LWP 4189)]
0xb67a2300 in ?? () from /usr/lib/libGLcore.so.1
(gdb) where
#0  0xb67a2300 in ?? () from /usr/lib/libGLcore.so.1
#1  0xb54e3040 in ?? ()
#2  0x00000000 in ?? ()
(gdb) dissassemble $pc-32 $pc-32
Undefined command: "dissassemble".  Try "help".
(gdb) disassemble $pc-32 $pc-32
Dump of assembler code from 0xb67a22e0 to 0xb67a22e0:
End of assembler dump.
(gdb) disassemble $pc-32 $pc+32
Dump of assembler code from 0xb67a22e0 to 0xb67a2320:
0xb67a22e0:     movaps (%ecx),%xmm0
0xb67a22e3:     add    $0x10,%ecx
0xb67a22e6:     movups %xmm0,(%edx)
0xb67a22e9:     add    $0x10,%edx
0xb67a22ec:     dec    %eax
0xb67a22ed:     jne    0xb67a22e0
0xb67a22ef:     jmp    0xb67a218f
0xb67a22f4:     mov    %esi,%ecx
0xb67a22f6:     mov    %edi,%edx
0xb67a22f8:     nop
0xb67a22f9:     lea    0x0(%esi),%esi
0xb67a2300:     movups (%ecx),%xmm0
0xb67a2303:     movups 0x10(%ecx),%xmm1
0xb67a2307:     movups 0x20(%ecx),%xmm2
0xb67a230b:     movups 0x30(%ecx),%xmm3
0xb67a230f:     add    $0x40,%ecx
0xb67a2312:     movaps %xmm0,(%edx)
0xb67a2315:     movaps %xmm1,0x10(%edx)
0xb67a2319:     movaps %xmm2,0x20(%edx)
0xb67a231d:     movaps %xmm3,0x30(%edx)
End of assembler dump.
(gdb) quit
The program is running.  Exit anyway? (y or n) yes
dfox@m206-157:/usr/local/stellarium/builds/unix/src$ cd


If I read that correctly, libGLcore.so.1 is part of nvidia-glx, and
that "movups" instruction is an SSE instruction, and my poor old
Athlon Thunderbird core processor just doesn't support it? It's
pre-Palomino vintage and doesn't look like it supports these
instructions (for instance wikipedia suggests Palomino was the first
processor to have those instructions fully included).

If that's the case, I guess I should downgrade to 100.14.12 - if that
is even possible.

Maybe somebody's telling me to go out and get a dual core Athlon 64??? :)

dfox@m206-157:~$ apt-cache policy nvidia-glx
nvidia-glx:
  Installed: 169.12-1
  Candidate: 169.12-1
  Version table:
 *** 169.12-1 0
        500 http://ftp.us.debian.org sid/non-free Packages
        100 /var/lib/dpkg/status

And I checked and indeed libGLcore.so.1 is in nvidia-glx.


Reply to: