>   kernel: invalid operand: 0000
>   kernel: CPU:    0
>   kernel: EIP:    0000:[agp_frontend_cleanup+4101/-1072693248]
>   kernel: EFLAGS: 00033246
>   kernel: eax: 00004f00   ebx: 00000000   ecx: 00000000   edx: 00000000
>   kernel: esi: 00000000   edi: 00001000   ebp: 00000001   esp: d00edf34
>   kernel: ds: 0000   es: 0000   ss: 0018
>   kernel: Process X (pid: 12602, stackpage=d00ed000)
>   kernel: Stack: 000000ea 00000030 00000000 00000040 00000000 00000000 00000000 
>00000000
>   kernel:        00000005 ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 
>ffffffff
>   kernel:        ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 
>ffffffff
>   kernel: Call Trace: [system_call+51/56]
>   kernel:
>   kernel: Code:  Bad EIP value.



Although nobody seems to be interested in this bug, I provide some new facts:   ;-)

1. Contrary to my first assumption the exception has actually nothing to do with
   AGP. (I removed AGP from my kernel (this time 2.4.5) and still got the same crash.
   "agp_frontend_cleanup" was of course not mentioned any more, but the values were
   the same.)

2. Loading the plex86 kernel module and executing the plex program does already
   cause the crash. Thus removing the kernel module seems not to be involved.
   (Just loading the kernel module alone doesn't lead to a crash either. So the
   bug must be somehow related to user/plex86 interacting with the kernel module.)

3. strace XFree86 :0 ends with the following lines. (Does plex86 mess around with the
   real BIOS and change some values there? Note the int10 initialization which seems
   to make XFree fail!)

   [...]
   stat64("/usr/X11R6/lib/modules/linux/libint10.a", {st_mode=S_IFREG|0755, 
st_size=23478, ...}) = 0
   close(6)                                = 0
   write(0, "(II) ", 5)                    = 5
   write(0, "Reloading /usr/X11R6/lib/modules"..., 50) = 50
   write(2, "(II) ", 5(II) )                    = 5
   write(0, "(II) ", 5)                    = 5
   write(2, "TDFX(0): ", 9TDFX(0): )                = 9
   write(0, "TDFX(0): ", 9)                = 9
   write(2, "initializing int10\n", 19initializing int10)    = 19
   write(0, "initializing int10\n", 19)    = 19
   shmget(2, 196608, IPC_CREAT|0x180|0600) = 229378
   shmget(3, 655360, IPC_CREAT|0x180|0600) = 262147
   shmat(262147, 0, 0)                     = 0x4019a000
   shmat(229378, 0, 0)                     = 0x4023a000
   shmat(262147, 0x1, SHM_RND)             = 0
   shmat(229378, 0xc0000, 0)               = 0xc0000
   open("/dev/mem", O_RDONLY)              = 6
   old_mmap(NULL, 4096, PROT_READ, MAP_SHARED, 6, 0) = 0x40017000
   munmap(0x40017000, 4096)                = 0
   close(6)                                = 0
   open("/dev/mem", O_RDONLY)              = 6
   old_mmap(NULL, 65536, PROT_READ, MAP_SHARED, 6, 0xc0000) = 0x40017000
   munmap(0x40017000, 65536)               = 0
   close(6)                                = 0
   open("/dev/mem", O_RDONLY)              = 6
   old_mmap(NULL, 65536, PROT_READ, MAP_SHARED, 6, 0xd0000) = 0x40017000
   munmap(0x40017000, 65536)               = 0
   close(6)                                = 0
   open("/dev/mem", O_RDONLY)              = 6
   old_mmap(NULL, 65536, PROT_READ, MAP_SHARED, 6, 0xe0000) = 0x40017000
   munmap(0x40017000, 65536)               = 0
   close(6)                                = 0
   write(2, "(II) ", 5(II) )                    = 5
   write(0, "(II) ", 5)                    = 5
   write(2, "TDFX(0): ", 9TDFX(0): )                = 9
   write(0, "TDFX(0): ", 9)                = 9
   write(2, "Primary V_BIOS segment is: 0xc00"..., 34Primary V_BIOS segment is: 
0xc000) = 34
   write(0, "Primary V_BIOS segment is: 0xc00"..., 34) = 34
   rt_sigprocmask(SIG_BLOCK, [IO], [], 8)  = 0
   vm86old(0x82cd9d8 <unfinished ...>
   +++ killed by SIGSEGV +++


The respective section from /var/log/XFree.0.log when plex86 wasn't run before is:

  (II) Loading /usr/X11R6/lib/modules/linux/libint10.a
  (II) Module int10: vendor="The XFree86 Project"
          compiled for 4.0.3, module version = 1.0.0
          ABI class: XFree86 Video Driver, version 0.3
  (II) TDFX(0): Softbooting the board (through the int10 interface).
  (II) TDFX(0): Primary V_BIOS segment is: 0xc000
  (II) TDFX(0): Softbooting the board succeeded.

In other words: after using Plex86 the 3dfx video card can't be soft-booted via
in10 any more. Any tip for how to further investigate the problem?

not willing to give up that easily
m.   :-)




CPU:       Intel 80686; 266MHz; UP
RAM:       350M
System:    Linux 2.4.5                <--- new
X-Server:  XFree86 4.0.3
Graphics:  TDFX Voodoo 3 3000
Plex86:    CVS/HEAD as of today
Compiler:  gcc 2.95.2 (on SuSE 7.1)

Reply via email to