[Intel-gfx] [regression] drm/i915: Eliminate nested get/put pages

Alexey Fisher bug-track at fisher-privat.net
Tue Nov 2 13:01:10 CET 2010


this is regression seems to depend on xserver-xorg-video-intel version.

xserver-xorg-video-intel version 2:2.12.0-1ubuntu5
i used till kernel 2.6.36-07547-g100519e, which was fine.

no i use xserver-xorg-video-intel
2:2.12.902+git20101028.b066ddda-0ubuntu0sarvatt2~maverick
what make kernel oops on dual core and complete freeze with maxcpus=1.
See oops on the end.

the commit i get first  freez witch is
"e5281ccd2e0049e2b9e8ce82449630d25082372d".
The problem is, after this commit it will freeze on the boot, but last
intel_drm_next freeze on login to gnome, after x is actually started.


My HW: eeepc 1005, 945gm graphik

intel_stepping 
Vendor: 0x8086, Device: 0x27ae, Revision: 0x03 (??)

commit e5281ccd2e0049e2b9e8ce82449630d25082372d
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Oct 28 13:45:36 2010 +0100

drm/i915: Eliminate nested get/put pages

By using read_cache_page() for individual pages during pwrite/pread we
can eliminate an unnecessary large allocation (and immediate free) of
obj->pages. Also this eliminates any potential nesting of get/put pages,
simplifying the code and preparing the path for greater things.

Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>





[   38.549876] ------------[ cut here ]------------
[   38.550003] kernel BUG
at /home/src/linux-2.6/drivers/gpu/drm/i915/i915_gem.c:4185!
[   38.550173] invalid opcode: 0000 [#1] SMP 
[   38.550287] last sysfs
file: /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/uevent
[   38.550464] Modules linked in: rfcomm binfmt_misc sco bnep l2cap
snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep arc4
snd_pcm_oss snd_mixer_oss snd_pcm ecb ath9k snd_seq_dummy snd_seq_oss
mac80211 snd_seq_midi ath9k_common ath9k_hw snd_rawmidi btusb
snd_seq_midi_event snd_seq bluetooth ath snd_timer snd_seq_device
cfg80211 uvcvideo psmouse atl1c videodev serio_raw v4l1_compat snd
shpchp uhci_hcd soundcore snd_page_alloc
[   38.551648] 
[   38.551691] Pid: 1651, comm: Xorg Not tainted 2.6.36-07555-gf2a630b
#160 1005HA/1005HA
[   38.551880] EIP: 0060:[<c1213dad>] EFLAGS: 00213202 CPU: 0
[   38.552011] EIP is at i915_gem_object_pin+0x16b/0x176
[   38.552011] EAX: 00009c9b EBX: f01ed540 ECX: 00000001 EDX: 00008000
[   38.552011] ESI: f5072000 EDI: 00000000 EBP: efbaa278 ESP: f1ca9dc4
[   38.552011]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[   38.552011] Process Xorg (pid: 1651, ti=f1ca8000 task=f269f900
task.ti=f1ca8000)
[   38.552011] Stack:
[   38.552011]  01010969 f1ca9e98 f01ed540 00000001 c1215482 00000001
00000000 00000000
[   38.552011] <0> efbaa240 f5031c00 f1d5c7e0 00000003 f1ca9e01 efbab940
00000003 f5072000
[   38.552011] <0> f5072018 c1212463 00000000 f2733080 00ce9040 c12150b2
00000000 00000000
[   38.552011] Call Trace:
[   38.552011]  [<c1215482>] ? i915_gem_do_execbuffer+0x38f/0xbe4
[   38.552011]  [<c1212463>] ? i915_gem_object_set_to_gtt_domain
+0x75/0x7b
[   38.552011]  [<c12150b2>] ? i915_gem_pwrite_ioctl+0x880/0x8c1
[   38.552011]  [<c10a445f>] ? __kmalloc+0x111/0x11c
[   38.552011]  [<c1215d6c>] ? i915_gem_execbuffer2+0x95/0xd8
[   38.552011]  [<c11f9ff1>] ? drm_ioctl+0x225/0x2d8
[   38.552011]  [<c1215cd7>] ? i915_gem_execbuffer2+0x0/0xd8
[   38.552011]  [<c11532e5>] ? smk_access+0x83/0x155
[   38.552011]  [<c1153494>] ? smk_curacc+0x76/0x81
[   38.552011]  [<c1151eb1>] ? smack_file_ioctl+0x4f/0x80
[   38.590993]  [<c11f9dcc>] ? drm_ioctl+0x0/0x2d8
[   38.590993]  [<c10b13a4>] ? do_vfs_ioctl+0x49f/0x4eb
[   38.590993]  [<c10b1435>] ? sys_ioctl+0x45/0x65
[   38.590993]  [<c1002893>] ? sysenter_do_call+0x12/0x22
[   38.590993] Code: 41 04 89 08 8b 86 58 11 00 00 89 96 58 11 00 00 81
c6 54 11 00 00 89 43 64 89 73 60 89 10 f6 43 7a 08 75 0b 80 7c 24 02 00
74 04 <0f> 0b eb fe 31 c0 5f 5b 5e 5f c3 55 57 56 89 c6 53 8d 64 24 fc 
[   38.612053] EIP: [<c1213dad>] i915_gem_object_pin+0x16b/0x176 SS:ESP
0068:f1ca9dc4

-- 
Regards,
        Alexey




More information about the Intel-gfx mailing list