Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 215108

Summary: x11-drivers/nvidia-drivers-169.09-r1 crash because of using SSE instrunctions on non-SSE CPU
Product: Gentoo Linux Reporter: Richard Walter <richard>
Component: Current packagesAssignee: Doug Goldstein (RETIRED) <cardoe>
Status: RESOLVED WONTFIX    
Severity: major CC: sascha_lucas
Priority: High    
Version: unspecified   
Hardware: x86   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: nvidia-driver.eclass-sse_check.diff

Description Richard Walter 2008-03-27 21:33:55 UTC
On my Athlon-B (aka Athlon Thunderbird) based system, all OpenGL applications (like glxgears) crash with an "illegal Instruction" message. I inspected the problem with ddd, which says
Program received signal SIGILL, Illegal instruction.
0xb771a110 in ?? () from //usr//lib/opengl/nvidia/lib/libGLcore.so.1
Inspecting this place in this file shows
    0xb771a110:     movaps (%ecx),%xmm0
    0xb771a113:     movaps 0x10(%ecx),%xmm1
    0xb771a117:     movaps 0x20(%ecx),%xmm2
    0xb771a11b:     movaps 0x30(%ecx),%xmm3
...
which are CPU instructions referencing SSE registers not present on this CPU (the Athlon Thunderbird has MMX and 3dNow!, but not SSE). To my eyes it looks like the nVIDIA driver does not correctly detect the CPU abilities

Reproducible: Always

Steps to Reproduce:
1. start the system including X
2. log in
3. start glxgears and see it crash




For information on the system (as thiss error seems somewhat hardware dependent), the contents of /proc/cpuinfo, the lspci output and emerge --info. The system has 1.5 GB of RAM.

richard ~ # cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 4
model name      : AMD Athlon(tm) Processor
stepping        : 2
cpu MHz         : 1002.480
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow
bogomips        : 2007.74

richard ~ # emerge --info
Portage 2.1.4.4 (default-linux/x86/2007.0/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.13-gentoo-r3 i686)
=================================================================
System uname: 2.6.13-gentoo-r3 i686 AMD Athlon(tm) Processor
Timestamp of tree: Sat, 22 Mar 2008 11:30:01 +0000
app-shells/bash:     3.2_p17-r1
dev-java/java-config: 1.3.7, 2.1.4
dev-lang/python:     2.4.4-r9
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.23-r3
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=athlon-tbird -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -march=athlon-tbird -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages metadata-transfer sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LINGUAS="de"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow X aac acl acpi alsa arts berkdb cairo cdparanoia cdr cli cracklib crypt cups dbus dri dvd dvdr dvdread eds emboss encode esd evo fam firefox fortran gdbm gif gpg gpm gstreamer gtk hal iconv ipv6 isdnlog java jpeg kde kdeenablefinal kerberos ldap mad midi mikmod mime mmx mp3 mpeg mudflap ncurses nls nptl nptlonly ogg opengl openmp oss pam pcre pdf perl png pppd python qt qt3 qt3support qt4 quicktime readline reflection samba sdl session smime spell spl ssl svg tcpd tiff truetype unicode vorbis win32codecs x86 xinerama xml xorg xscreensaver xv zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse joystick" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de" USERLAND="GNU" VIDEO_CARDS="fbdev nv nvidia vesa vga"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

richard ~ # lspci
00:00.0 Host bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133] (rev 03)
00:01.0 PCI bridge: VIA Technologies, Inc. Unknown device 0583
00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40)
00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 16)
00:07.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 16)
00:07.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40)
00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 50)
00:0c.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
01:00.0 VGA compatible controller: nVidia Corporation NV31 [GeForce FX 5600XT] (rev a1)
Comment 1 Doug Goldstein (RETIRED) gentoo-dev 2008-03-29 01:43:50 UTC
I have a feeling NVIDIA is going to tell you to upgrade your hardware. But basically you need to talk to them.
Comment 2 Richard Walter 2008-03-30 19:46:35 UTC
I found a somewhat official statement from nVIDIA in the nvnews forum
http://www.nvnews.net/vbulletin/showthread.php?s=53d6015a1a38e6ea3fd238971bf3e1d9&t=104914
stating that from Driver version 169.07 non-SSE CPUs are no longer supported. So it is very unlikely that this will be fixed and all owners of non-SSE CPUs should stick to the legacy drivers, which are the only nVIDIA drivers which will get releases supporting non-SSE CPUs in the future. I think it would also be nice to warn users when upgrading from a pre-196.07 driver, even when nVIDIA did not do so.
Comment 3 Doug Goldstein (RETIRED) gentoo-dev 2008-04-04 19:37:09 UTC
Adding yet another ewarn for a small minority of users is not really worth it. How many people have an old Athlon with a GeForce 6 or better card?
Comment 4 Sascha Lucas 2008-05-13 09:44:30 UTC
(In reply to comment #3)
> How many people have an old Athlon with a GeForce 6 or better card?
 
this happens, when your old video card breaks and you buy a new cheap (=nvidia) one. Next time I buy an ATI :-).
Comment 5 Sascha Lucas 2008-05-13 09:47:31 UTC
Created attachment 153027 [details, diff]
nvidia-driver.eclass-sse_check.diff

modified nvidia-driver.eclass to check for non SSE-CPUs