We got a bug report in our bugzilla from a user that saw
SiS DRM crashing when he restarted X.

The crash seems to be two things.

First, a page allocation failure.

Mar 11 17:52:29 localhost kernel: X: page allocation failure. order:4, mode:0xd0
Mar 11 17:52:29 localhost kernel:  [<c01435a1>] __alloc_pages+0x281/0x28e
Mar 11 17:52:29 localhost kernel:  [<c01435c6>] __get_free_pages+0x18/0x24
Mar 11 17:52:29 localhost kernel:  [<c0146bb5>] kmem_getpages+0x15/0x94
Mar 11 17:52:29 localhost kernel:  [<c01478ae>] cache_grow+0x11f/0x260
Mar 11 17:52:29 localhost kernel:  [<c0147bfd>] cache_alloc_refill+0x20e/0x23e
Mar 11 17:52:29 localhost kernel:  [<c0147f2d>] __kmalloc+0x64/0x76
Mar 11 17:52:29 localhost kernel:  [<dca6adcb>] sisdrv_alloc+0xa/0xb [sis]
Mar 11 17:52:29 localhost kernel:  [<dca6d19b>] setInit+0xf/0x4f [sis]

That's caused by setInit trying to allocate this..  (drivers/char/drm/sis_ds.h)

#define SET_SIZE 5000

typedef unsigned int ITEM_TYPE;

typedef struct {
    ITEM_TYPE val;
    int alloc_next, free_next;
} list_item_t;

typedef struct {
    int alloc;
    int free;
    int trace;
    list_item_t list[SET_SIZE];
} set_t;


set_t ends up at a whopping 60012 bytes. This just plain isn't
going to work if someone restarts X after the memory has become
fragmented after quite a lot of use.   This should be converted
to use a linked-list of smaller allocations.

Even though this initialisation failed, it seems that something
else didn't realise this, and on shutdown, tried to free something..
The users oops report is tainted with a bunch of part binary
modules, but in this particular case, I think that's irrelevant.

ar 11 17:53:30 localhost kernel: Unable to handle kernel paging
request at virtual address f000ea7d
Mar 11 17:53:30 localhost kernel:  printing eip:
Mar 11 17:53:30 localhost kernel: dca6d4a3
Mar 11 17:53:30 localhost kernel: *pde = 00000000
Mar 11 17:53:30 localhost kernel: Oops: 0000 [#1]
Mar 11 17:53:30 localhost kernel: Modules linked in: shfs(U)
snd_trident gameport snd_util_mem snd_mpu401_uart snd_rawmidi
snd_seq_device pcmcia yenta_socket pcmcia_core ohci_hcd loop vfat fat
sis wlan_tkip(U) ath_pci(U) ath_rate_onoe(U) wlan(U) ath_hal(U)
parport_pc lp parport ipt_REJECT ipt_state ip_conntrack iptable_filter
ip_tables microcode dm_mod joydev i2c_sis630 i2c_core snd_intel8x0m
snd_ac97_codec snd_pcm_oss snd_mixer_oss snd_pcm snd_timer
snd_page_alloc snd soundcore xircom_cb sis900 floppy ext3 jbd
Mar 11 17:53:30 localhost kernel: CPU:    0
Mar 11 17:53:30 localhost kernel: EIP:    0060:[<dca6d4a3>]   
Tainted: PF     VLI
Mar 11 17:53:30 localhost kernel: EFLAGS: 00213282   (2.6.10-1.770_FC3)
Mar 11 17:53:30 localhost kernel: EIP is at mmFreeMem+0xe/0xaf [sis]
Mar 11 17:53:30 localhost kernel: eax: 00000000   ebx: f000ea79   ecx:
00000000   edx: 00000001
Mar 11 17:53:30 localhost kernel: esi: 00000001   edi: d040ec20   ebp:
c0086421   esp: d3efff44
Mar 11 17:53:30 localhost kernel: ds: 007b   es: 007b   ss: 0068
Mar 11 17:53:31 localhost kernel: Process X (pid: 5481,
threadinfo=d3eff000 task=d3468190)
Mar 11 17:53:33 localhost kernel: Stack: 00000000 00000001 dca6dcb1
f000ea79 d040ec20 dca739a0 dca68263 00000002
Mar 11 17:53:34 localhost kernel:        007b1800 dca739a0 dca7326c
d040ec20 dca6a0c4 bff8da40 dca681fb d4b83b60
Mar 11 17:53:35 localhost kernel:        d0b90dec dca73060 bff8da40
c0086421 d4b83b60 c017400d bff8da40 d0b90dec
Mar 11 17:53:36 localhost kernel: Call Trace:
Mar 11 17:53:36 localhost kernel:  [<dca6dcb1>]
sis_final_context+0xda/0x102 [sis]
Mar 11 17:53:37 localhost kernel:  [<dca68263>] sisdrv_rmctx+0x68/0xf7
[sis]
Mar 11 17:53:37 localhost kernel:  [<dca6a0c4>] sisdrv_ioctl+0xe3/0xef
[sis]
Mar 11 17:53:37 localhost kernel:  [<dca681fb>] sisdrv_rmctx+0x0/0xf7
[sis]
Mar 11 17:53:37 localhost kernel:  [<c017400d>] sys_ioctl+0x1d0/0x1eb
Mar 11 17:53:37 localhost kernel:  [<c0103443>] syscall_call+0x7/0xb
Mar 11 17:53:37 localhost kernel: Code: eb 16 8d 41 01 89 da 89 f9 50
89 f0 6a 00 e8 f7 fe ff ff 89 68 04 5a 59 5b 5e 5f 5d c3 56 53 89 c3
31 c0 85 db 0f 84 9e 00 00 00 <8b> 53 04 83 c8 ff 85 d2 0f 84 90 00 00
00 31 f6 89 d1 39 da 74

                Dave



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to