Oops problems, S3Virge

Samuel Kvasnica (kvasnica@quantum.karlov.mff.cuni.cz)
Mon, 17 Feb 1997 15:03:18 +0100 (MET)


Recently I bought S3 3D Virge VGA card and my linux box started to crash
more than MS-Windogs. In 8bpp mode runs everything OK,
but when using 16bpp serious problems appear, sometimes machine reboots
without any delay, or I get 'general protection fault' message on console,
in few cases syslogd succeeded in saving the mesages, here are some
examples:

----------------------------------
general protection: 0000
CPU: 0
EIP: 0010:[<00135217>]
EFLAGS: 00013282
eax: 94900013 ebx: 00000001 ecx: 00374e9c edx: 0039a278
esi: 00474bc0 edi: 00000001 ebp: 0039a1f0 esp: 00374e40
ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
Process X (pid: 111, process nr: 19, stackpage=00374000)
Stack: 0039a278 00000001 00374e9c 001351f4 0012c3ea 0039a1f0 00474bc0 00000001
00374e9c 00000001 00474bc0 00374e9c 00000000 00000000 0012c539 00000001
00374e9c 00474bc0 00000080 00000000 00000000 081e1280 00bf0000 00000001
Call Trace: [<001351f4>] [<0012c3ea>] [<0012c539>] [<0012c833>] [<0010fca7>] [<0010a5e2>]
Code: ff d0 83 c4 0c 5b c3 8d 36 31 c0 5b c3 53 8b 5c 24 08 8b 44
general protection: 0000

CPU: 0
EIP: 0010:[<0013500e>]
EFLAGS: 00013206
eax: 99200013 ebx: 0039a1f0 ecx: 00000000 edx: 00000000
esi: 00000000 edi: 0039a278 ebp: 0000000b esp: 00374d50
ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
Process X (pid: 111, process nr: 19, stackpage=00374000)
Stack: 0039a278 00000000 0039a1f0 0039a1f0 0039a1f0 0048d018 00135249 0039a278
00474bc0 00121210 0039a1f0 00474bc0 00000000 00474bc0 00121280 00474bc0
0039a1f0 000007ff 00000001 00000001 001158fa 00474bc0 0009002b 00000014
Call Trace: [<00135249>] [<00121210>] [<00121280>] [<001158fa>] [<0010ab82>] [<02000000>] [<01800000>]
[<0010af98>] [<0010af70>] [<0010a76d>] [<0014002b>] [<00135217>] [<001351f4>] [<0012c3ea>] [<0012c539>]
[<0012c833>] [<0010fca7>] [<0010a5e2>]
Code: ff d0 83 c4 08 85 f6 74 1b c7 46 04 04 00 00 00 8b 46 20 50

Unable to handle kernel NULL pointer dereference at virtual address c0000001
current->tss.cr3 = 007b7000, <r3 = 007b7000
*pde = 00102067
*pte = 00000027
Oops: 0000
CPU: 0
EIP: 0010:[<00110c2c>]
EFLAGS: 00013097
eax: 001ac9fc ebx: 00000001 ecx: 001ac9fc edx: 000003fd
esi: 00003086 edi: 001ac9f8 ebp: 007b9f18 esp: 007b9f0c
ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
Process X (pid: 109, process nr: 19, stackpage=007b9000)
Stack: 001ac914 00003086 001ac9d0 0085b000 0017760b 001ac9fc 001ac914 0000acc7
00179284 001ac914 0085b000 00000000 0021ea40 00000000 00000001 00003246
0017b4a7 0085b000 0021ea40 0021ea40 00fbe6c8 00fbe6c8 bffffb10 00000000
Call Trace: [<0017760b>] [<00179284>] [<0017b4a7>] [<0017b89e>] [<0012132c>] [<0012139c>] [<001213f0>]
[<0010a5e2>]
Code: 8b 13 8b 5b 04 85 d2 74 65 8b 02 83 f8 01 75 5e 9c 5e fa c7
exiting on signal 15
Cannot find map file.

Unable to handle kernel NULL pointer dereference at virtual address c0000008
current->tss.cr3 = 007bb000, <r3 = 007bb000
*pde = 00102067
*pte = 00000027
Oops: 0000
CPU: 0
EIP: 0010:[<00110e9a>]
EFLAGS: 00013013
eax: ffffffff ebx: 00003286 ecx: 007bde6c edx: 00000000
esi: ffffffff edi: ffffffff ebp: 007bde4c esp: 007bde48
ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
Process X (pid: 109, process nr: 19, stackpage=007bd000)
Stack: 007be018 007bde80 00110a93 007bde6c 0000000d 0050c880 00000000 ffffffff
00a78018 00000000 00000000 ffffffff 007be018 00110800 00000000 0012c6e5
00000080 00000000 00000000 081e1280 009d1000 0000000c 009d1000 0012c94f
Call Trace: [<00110a93>] [<00110800>] [<0012c6e5>] [<0012c94f>] [<0010fdc3>] [<0010a5e2>]
Code: 39 42 08 72 f9 89 11 8b 42 04 89 41 04 89 4a 04 8b 41 04 89
general protection: 0000
CPU: 0
EIP: 0010:[<00147d54>]
EFLAGS: 00010286
eax: 00000004 ebx: 002e4010 ecx: 00000000 edx: 001a591c
esi: 000e01f0 edi: ffaa0055 ebp: 00000001 esp: 001a43c0
ds: 0018 es: 0018 fs: 002b gs: 0018 ss: 0018
Process swapper (pid: 0, process nr: 0, stackpage=001a24b8)
Stack: 00147d00 001a878c 00000001 001a43ec 00111494 000e01f0 00111508 00000000
00000001 ffffffff 00000001 001c0094 00116b7b 001a4408 001a4494 00000000
00009000 0010a56b 000e01b5 fffffc18 001a4c68 001a4494 00000000 00009000
Call Trace: [<00147d00>] [<00111494>] [<00111508>] [<00116b7b>] [<0010a56b>] [<001095bf>] [<00109613>]
[<0010a5e2>] [<00109328>] [<00190018>] [<001091b5>] [<00116314>] [<00110aa8>]
Code: f6 47 0c 04 0f 85 bc 00 00 00 fa 8b 44 24 14 2b 47 04 39 05
Aiee, killing interrupt handler
kfree of non-kmalloced memory: 001a4500, next= 00000000, order=0
kfree of non-kmalloced memory: 001a44f0, next= 00000000, order=0
kfree of non-kmalloced memory: 001a4a04, next= 00000000, order=0
idle task may not sleep
last message repeated 4 times
Cannot find map file.
--------------------------------------------

After running syslog throught ksymoops I get something like:

Using `System.map' to map addresses to symbols.

>>EIP: 13500e <socki_lookup+2/c>
Trace: 135249 <sock_write+15/b4>
Trace: 121210 <get_unused_fd+c/64>
Trace: 121280 <sys_open>
Trace: 1158fa <exit_notify+1d2/1dc>
Trace: 10ab82 <die_if_kernel+2b6/2c0>
Trace: 2000000
Trace: 1800000
Trace: 10af98 <do_general_protection+28/54>
Trace: 10af98 <do_general_protection+28/54>
Trace: 10a76d <error_code+3d/50>
Trace: 14002b <ip_build_xmit+443/b60>
Trace: 135217 <sock_read+a3/c0>
Trace: 1351f4 <sock_read+80/c0>
Trace: 12c3ea <sys_getdents+22/c8>
Trace: 12c539 <check+65/84>
Trace: 12c833 <sys_select+67/254>
Trace: 10fca7 <timer_interrupt+6f/84>
Trace: 10a5e2 <system_call+52/80>

Code: 13500e <socki_lookup+2/c> call *%eax
Code: 135010 <socki_lookup+4/c> addl $0x8,%esp
Code: 135013 <socki_lookup+7/c> testl %esi,%esi
Code: 135015 <socki_lookup+9/c> je 135032 <sock_alloc+1a/b8>
Code: 135017 <socki_lookup+b/c> movl $0x4,0x4(%esi)
Code: 13501e <sock_alloc+6/b8> movl 0x20(%esi),%eax
Code: 135021 <sock_alloc+9/b8> pushl %eax
Code: 135022 <sock_alloc+a/b8>

Using `System.map' to map addresses to symbols.

>>EIP: 110c2c <wake_up_interruptible+2c/dc>
Trace: 17760b <shutdown+1f/168>
Trace: 179284 <rs_close+1a8/244>
Trace: 17b4a7 <release_dev+25f/4a0>
Trace: 17b89e <tty_release+a/10>
Trace: 12132c <__fput+1c/40>
Trace: 12139c <close_fp+4c/5c>
Trace: 1213f0 <sys_close+44/50>
Trace: 10a5e2 <system_call+52/80>

Code: 110c2c <wake_up_interruptible+2c/dc> movl (%ebx),%edx
Code: 110c2e <wake_up_interruptible+2e/dc> movl 0x4(%ebx),%ebx
Code: 110c31 <wake_up_interruptible+31/dc> testl %edx,%edx
Code: 110c33 <wake_up_interruptible+33/dc> je 110c9a <wake_up_interruptible+9a/dc>
Code: 110c35 <wake_up_interruptible+35/dc> movl (%edx),%eax
Code: 110c37 <wake_up_interruptible+37/dc> cmpl $0x1,%eax
Code: 110c3a <wake_up_interruptible+3a/dc> jne 110c9a <wake_up_interruptible+9a/dc>
Code: 110c3c <wake_up_interruptible+3c/dc> pushf
Code: 110c3d <wake_up_interruptible+3d/dc> popl %esi
Code: 110c3e <wake_up_interruptible+3e/dc> cli
Code: 110c3f <wake_up_interruptible+3f/dc>

Using `System.map' to map addresses to symbols.

>>EIP: 17f89c <complement_pos+1c/70>
Trace: 188965 <clear_selection+d/48>
Trace: 18c18f <__set_origin+f/58>
Trace: 17ecc9 <set_origin+59/60>
Trace: 1821d8 <do_unblank_screen+c4/f0>
Trace: 182215 <unblank_screen+5/8>
Trace: 1114cc <timer_bh+f0/14c>
Trace: 116b7b <do_bottom_half+3b/60>
Trace: 10a56b <handle_bottom_half+b/20>
Trace: 109634 <sys_idle+5c/70>
Trace: 10a5e2 <system_call+52/80>
Trace: 109328 <init>
Trace: 190018 <pci_strvendor+674/6c8>
Trace: 1091b5 <start_kernel+1ad/1b8>
Trace: 116314 <it_real_fn>
Trace: 110aa8 <schedule+230/288>

Code: 17f89c <complement_pos+1c/70> movw %?,%cx
Code: 17f89e <complement_pos+1e/70> pushl 0xf(%ebp)
Code: 17f8a1 <complement_pos+21/70> movl $0x0,0x1ae400
Code: 17f8ab <complement_pos+2b/70> popl %ebx
Code: 17f8ac <complement_pos+2c/70> lesl 0x90000076(%ebp),%ecx
Code: 17f8b2 <complement_pos+32/70> nop
Code: 17f8b3 <complement_pos+33/70> nop
-----------------------------------------------

This problems don't appear randomly, some applications run without
problems whole day. But it's possible to crash down machine by opening a
GIF image in XV, with probability ~ 1:5

My configuration:

motherboard SOYO 5TF2 (HX chipset)
IBM 6x86 P150+, rev.7
VGA S3 3D VIRGE, 2MB DRAM
SVEC FD0490 NE2000 comp.
16MB 60ns EDO RAM

Linux kernel 2.0.29
libc 5.4.17
gcc 2.7.2.1
XFree86 6.1, server S3V


------------------------------------------------------------------------
Samuel Kvasnica
MFF-UK Email: kvasnica@quantum.karlov.mff.cuni.cz
Dpt. of polymer physics Tel: private +42-2-8556152-525
V Holesovickach 2 faculty +42-2-2191-2367
PRAGUE 8, 180 00 http: //www.kolej.mff.cuni.cz/~kvasnica
CZECH REPUBLIC
------------------------------------------------------------------------