Re: Kernels since 2.5.60 upto 2.5.67 freeze when X server terminates

Florin Iucha
2003-04-18T15:16:35Z

[-- Attachment #1: Type: text/plain, Size: 10455 bytes --]

On Wed, Apr 16, 2003 at 02:58:19PM +0100, Dave Jones wrote:
> On Wed, Apr 16, 2003 at 08:15:36AM -0500, Florin Iucha wrote:
>
> > 00:00.0 Host bridge: Silicon Integrated Systems [SiS] 735 Host (rev 01)
> > 01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R200 QL
> > [Radeon 8500 LE]
> >
> > Maybe the AGP code is trying to push some bits in the wrong
> > port/address?
>
> SiS driver internals haven't changed (at least not under my hands),
> so it should be poking the same bits in the same registers as the
> 2.4 driver does. The only 'bits in wrong address' type bug outstanding
> in agpgart is that the gatt_table address is potentially allocated as
> a 64bit address and truncated to fit into 32bits, but that will only bite
> you on a 64bit host that uses the generic gatt allocation routines.
> (Namely x86-64).

With 2.5.67-bk8, agpgart and sis-agp compiled as modules and loaded:
- X starts (I am using wdm as display manager)
- direct rendering is enabled, according to /var/log/XFree86.0.log
- start glxgears
- framerate 130!!! It should be around 1900-2000 on my hardware
(moons ago on XFree 4.2.1 + DRI snapshot)
- after 15-20 seconds, the X session is restarted - back to wdm
screen
- I login, I logout and the machine freeze
- the last words on serial console:
[drm] Loading R200 Microcode
double fault, gdt at c039df00 [255 bytes]
double fault, tss at c0418800
eip = c0143a00, esp = ececbf0c
eax = ee37dc60, ebx = ee37dc40, ecx = 0000007b, edx = 00000000
esi = ee37dc60, edi = edc0e0c0

With 2.5.67-bk8, agpgart and sis-agp built in:
- no lockups
- direct rendering is disabled
- X crashes sometimes with the following traces:

eth0: Media Link On 100mbps full-duplex
Please use the 'usbfs' filetype instead, the 'usbdevfs' name is deprecated.
agpgart: Found an AGP 2.0 compliant device.
agpgart: Putting AGP V2 device at 00:00.0 into 4x mode
agpgart: Putting AGP V2 device at 01:00.0 into 4x mode
[drm] Loading R200 Microcode
agpgart: Found an AGP 2.0 compliant device.
agpgart: Putting AGP V2 device at 00:00.0 into 4x mode
agpgart: Putting AGP V2 device at 01:00.0 into 4x mode
[drm] Loading R200 Microcode
Unable to handle kernel paging request at virtual address fffffff0
printing eip:
c0146147
*pde = 00001067
*pte = 00000000
Oops: 0000 [#1]
CPU: 0
EIP: 0060:[<c0146147>] Not tainted
EFLAGS: 00013286
EIP is at page_remove_rmap+0xb7/0x130
eax: ffffffff ebx: c14acc48 ecx: 0000000f edx: fffffff0
esi: dcd5ffc0 edi: ffffffff ebp: fffffff0 esp: da333b60
ds: 007b es: 007b ss: 0068
Process XFree86 (pid: 657, threadinfo=da332000 task=de0ced00)
Stack: dcb72cc0 dcd5ffc0 da403a18 da403a18 0006e000 00100000 c14acc48 c0140495
c14acc48 da332000 da332000 00000000 1deb5045 dc8b5084 08618000 08318000
c0465758 c014053b c0465758 dc8b5080 08218000 00100000 08218000 dc8b5084
Call Trace:
[<c0140495>] zap_pte_range+0x155/0x1b0
[<c014053b>] zap_pmd_range+0x4b/0x70
[<c01405a3>] unmap_page_range+0x43/0x70
[<c0140694>] unmap_vmas+0xc4/0x220
[<c01444cb>] exit_mmap+0x7b/0x190
[<c011bc44>] mmput+0x54/0xb0
[<c0159203>] exec_mmap+0xb3/0x130
[<c0159309>] flush_old_exec+0x19/0x850
[<c0159140>] kernel_read+0x50/0x60
[<c0175525>] load_elf_binary+0x2d5/0xb50
[<c01651e2>] dput+0x22/0x1e0
[<c021a187>] linvfs_readv+0x47/0x50
[<c0175250>] load_elf_binary+0x0/0xb50
[<c0159e7a>] search_binary_handler+0x8a/0x1d0
[<c015a1d1>] do_execve+0x211/0x260
[<c01093e0>] sys_execve+0x50/0x80
[<c010ab77>] syscall_call+0x7/0xb

Code: 8b 02 89 c5 83 e5 f0 74 04 0f 0d 45 00 89 c1 83 e1 0f 83 f9
<6>note: XFree86[657] exited with preempt_count 2
Unable to handle kernel paging request at virtual address 081e5788
printing eip:
c0164857
*pde = 00000000
Oops: 0000 [#2]
CPU: 0
EIP: 0060:[<c0164857>] Not tainted
EFLAGS: 00013206
EIP is at locks_remove_posix+0x97/0x110
eax: de0ced00 ebx: dd6dfd20 ecx: 00000000 edx: 081e5760
esi: de84b040 edi: de84b040 ebp: 00000000 esp: da333988
ds: 007b es: 007b ss: 0068
Process XFree86 (pid: 657, threadinfo=da332000 task=de0ced00)
Stack: 000003e8 00000005 0000000d 00000032 00000000 00000000 da3339c0 c0119948
de84b040 00000291 00003092 00000000 de3064c0 00000201 00000000 00000000
ffffffff 7fffffff 00000000 da332000 00003296 00000000 00100000 de826ac0
Call Trace:
[<c0119948>] try_to_wake_up+0x128/0x1d0
[<c014ea5c>] filp_close+0x8c/0xd0
[<c011ecb7>] put_files_struct+0x57/0xc0
[<c011f816>] do_exit+0x146/0x370
[<c010bbb1>] die+0xe1/0xf0
[<c0118a2a>] do_page_fault+0x14a/0x457
[<c01355b0>] do_generic_mapping_read+0x1a0/0x3b0
[<c0168409>] update_atime+0xd9/0xe0
[<c0135a89>] __generic_file_aio_read+0x1b9/0x200
[<c01357c0>] file_read_actor+0x0/0x110
[<c01188e0>] do_page_fault+0x0/0x457
[<c010b581>] error_code+0x2d/0x38
[<c0146147>] page_remove_rmap+0xb7/0x130
[<c0140495>] zap_pte_range+0x155/0x1b0
[<c014053b>] zap_pmd_range+0x4b/0x70
[<c01405a3>] unmap_page_range+0x43/0x70
[<c0140694>] unmap_vmas+0xc4/0x220
[<c01444cb>] exit_mmap+0x7b/0x190
[<c011bc44>] mmput+0x54/0xb0
[<c0159203>] exec_mmap+0xb3/0x130
[<c0159309>] flush_old_exec+0x19/0x850
[<c0159140>] kernel_read+0x50/0x60
[<c0175525>] load_elf_binary+0x2d5/0xb50
[<c01651e2>] dput+0x22/0x1e0
[<c021a187>] linvfs_readv+0x47/0x50
[<c0175250>] load_elf_binary+0x0/0xb50
[<c0159e7a>] search_binary_handler+0x8a/0x1d0
[<c015a1d1>] do_execve+0x211/0x260
[<c01093e0>] sys_execve+0x50/0x80
[<c010ab77>] syscall_call+0x7/0xb

Code: 0f b6 42 28 24 01 84 c0 74 05 39 72 14 74 44 89 d3 8b 03 85
<6>note: XFree86[657] exited with preempt_count 3
Unable to handle kernel paging request at virtual address 09373844
printing eip:
c0143a33
*pde = 00000000
Oops: 0000 [#3]
CPU: 0
EIP: 0060:[<c0143a33>] Not tainted
EFLAGS: 00013202
EIP is at find_vma+0x33/0x60
eax: 0937383c ebx: bfffe76c ecx: 00000000 edx: 09373854
esi: de826ac0 edi: de0ced00 ebp: bfffe76c esp: da257f04
ds: 007b es: 007b ss: 0068
Process XFree86 (pid: 658, threadinfo=da256000 task=de0ced00)
Stack: de826ac0 de826ae0 c0118a68 de826ac0 bfffe76c 081c959c 00000001 00000001
dc4b8c00 00000000 00000000 00030001 00000000 00000000 40000000 40000000
00000000 00000000 00000000 00000000 08754c28 08768ed4 00000000 00000000
Call Trace:
[<c0118a68>] do_page_fault+0x188/0x457
[<c014ea63>] filp_close+0x93/0xd0
[<c014ea63>] filp_close+0x93/0xd0
[<c01188e0>] do_page_fault+0x0/0x457
[<c010b581>] error_code+0x2d/0x38

Code: 39 58 08 76 1a 39 58 04 89 c1 76 07 8b 52 0c 85 d2 75 ea 85
unmap_vmas: VMA list is not sorted correctly!
------------[ cut here ]------------
kernel BUG at mm/mmap.c:1417!
invalid operand: 0000 [#4]
CPU: 0
EIP: 0060:[<c01445d2>] Not tainted
EFLAGS: 00013202
EIP is at exit_mmap+0x182/0x190
eax: fffff8f1 ebx: 00000002 ecx: 00000000 edx: 00000000
esi: de826ac0 edi: da256000 ebp: de0ced00 esp: da257d9c
ds: 007b es: 007b ss: 0068
Process XFree86 (pid: 658, threadinfo=da256000 task=de0ced00)
Stack: da257db4 de826ac0 dc4b8e80 00000000 ffffffff da257db8 c0465758 0000070f
de826ac0 00000000 00000000 c011bc44 de826ac0 c03b4fdc de826ac0 c011f7dd
de826ac0 de826ac0 00000001 0000007b da256000 da257ed0 de0ced00 09373844
Call Trace:
[<c011bc44>] mmput+0x54/0xb0
[<c011f7dd>] do_exit+0x10d/0x370
[<c010bbb1>] die+0xe1/0xf0
[<c0118a2a>] do_page_fault+0x14a/0x457
[<c0138941>] buffered_rmqueue+0xb1/0x150
[<c0138a72>] __alloc_pages+0x92/0x2c0
[<c013d945>] invalidate_vcache+0x35/0xf0
[<c014110d>] do_wp_page+0x1cd/0x370
[<c01188e0>] do_page_fault+0x0/0x457
[<c010b581>] error_code+0x2d/0x38
[<c0143a33>] find_vma+0x33/0x60
[<c0118a68>] do_page_fault+0x188/0x457
[<c014ea63>] filp_close+0x93/0xd0
[<c014ea63>] filp_close+0x93/0xd0
[<c01188e0>] do_page_fault+0x0/0x457
[<c010b581>] error_code+0x2d/0x38

Code: 0f 0b 89 05 a6 50 37 c0 e9 06 ff ff ff 90 83 ec 28 89 5c 24
<6>note: XFree86[658] exited with preempt_count 1
Unable to handle kernel paging request at virtual address 081e5788
printing eip:
c0164857
*pde = 1c19e067
*pte = 00000000
Oops: 0000 [#5]
CPU: 0
EIP: 0060:[<c0164857>] Not tainted
EFLAGS: 00013206
EIP is at locks_remove_posix+0x97/0x110
eax: de0ced00 ebx: dd6dfd20 ecx: 00000000 edx: 081e5760
esi: df2f8e40 edi: df2f8e40 ebp: 00000000 esp: da257bd8
ds: 007b es: 007b ss: 0068
Process XFree86 (pid: 658, threadinfo=da256000 task=de0ced00)
Stack: 000003e8 00000005 0000000d 00000032 00000000 00000000 da257c10 c0119948
df2f8e40 00000292 00003092 00000000 de3064c0 00000201 00000000 00000000
ffffffff 7fffffff 00000000 da256000 00003292 00000032 da257c50 00003292
Call Trace:
[<c0119948>] try_to_wake_up+0x128/0x1d0
[<c014ea5c>] filp_close+0x8c/0xd0
[<c011ecb7>] put_files_struct+0x57/0xc0
[<c010bf30>] do_invalid_op+0x0/0xd0
[<c011f816>] do_exit+0x146/0x370
[<c010bf30>] do_invalid_op+0x0/0xd0
[<c010bbb1>] die+0xe1/0xf0
[<c010bff9>] do_invalid_op+0xc9/0xd0
[<c01445d2>] exit_mmap+0x182/0x190
[<c011a3f1>] __wake_up_common+0x31/0x50
[<c011df1d>] printk+0x11d/0x180
[<c010b581>] error_code+0x2d/0x38
[<c01445d2>] exit_mmap+0x182/0x190
[<c011bc44>] mmput+0x54/0xb0
[<c011f7dd>] do_exit+0x10d/0x370
[<c010bbb1>] die+0xe1/0xf0
[<c0118a2a>] do_page_fault+0x14a/0x457
[<c0138941>] buffered_rmqueue+0xb1/0x150
[<c0138a72>] __alloc_pages+0x92/0x2c0
[<c013d945>] invalidate_vcache+0x35/0xf0
[<c014110d>] do_wp_page+0x1cd/0x370
[<c01188e0>] do_page_fault+0x0/0x457
[<c010b581>] error_code+0x2d/0x38
[<c0143a33>] find_vma+0x33/0x60
[<c0118a68>] do_page_fault+0x188/0x457
[<c014ea63>] filp_close+0x93/0xd0
[<c014ea63>] filp_close+0x93/0xd0
[<c01188e0>] do_page_fault+0x0/0x457
[<c010b581>] error_code+0x2d/0x38

Code: 0f b6 42 28 24 01 84 c0 74 05 39 72 14 74 44 89 d3 8b 03 85
<6>note: XFree86[658] exited with preempt_count 2
mtrr: MTRR 1 not used
mtrr: MTRR 1 not used
serio: kseriod exiting
Shutting down devices
Power down.
acpi_power_off called

With the same .config but with 67-ac2 the machine hungs with similar
traces on the serial console.

florin

--

"NT is to UNIX what a doughnut is to a particle accelerator."

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]