[Intel-gfx] Xserver hang in DRM_I915_GEM_THROTTLE waiting for line 1080 on a display with 768 lines.
Barry Scott
barry.scott at onelan.co.uk
Tue Jun 16 16:12:17 CEST 2009
I'm working on fixing problem with playing video on rotated displays.
Xorg server 1.6.1
intel driver 2.7.1
kernel 2.26.30
I set up a rotated display:
# xrandr
Screen 0: minimum 320 x 200, current 768 x 1360, maximum 4096 x 4096
VGA connected 768x1360+0+0 left (normal left inverted right x axis y
axis) 519mm x 324mm
NTB-vesa_cvt-1360x768 59.8*+
1920x1200 60.0 +
1600x1200 60.0
1280x1024 60.0
1024x768 60.0
800x600 60.3
640x480 59.9
Then I run KeithP's xvtest program that has been modified to create
a 1920x1080 image.
The Xorg server is now hung and gdb shows:
(gdb) thread apply all bt
Thread 1 (Thread -1208948976 (LWP 3233)):
#0 0x007bc424 in __kernel_vsyscall ()
#1 0x00530c29 in ioctl () from /lib/libc.so.6
#2 0x007847c3 in drmIoctl (fd=11, request=25688, arg=0x0) at xf86drm.c:187
#3 0x00784942 in drmCommandNone (fd=11, drmCommandIndex=24) at
xf86drm.c:2313
#4 0x005e0d6f in I830BlockHandler (i=0, blockData=0x0,
pTimeout=0xbfb1ba88,
pReadmask=0x81dfe60) at i830_driver.c:2659
#5 0x0816b17e in AnimCurScreenBlockHandler (screenNum=0, blockData=0x0,
pTimeout=0xbfb1ba88, pReadmask=0x81dfe60) at animcur.c:222
#6 0x08136e75 in compBlockHandler (i=0, blockData=0x0,
pTimeout=0xbfb1ba88,
pReadmask=0x81dfe60) at compinit.c:158
#7 0x0808a06a in BlockHandler (pTimeout=0xbfb1ba88, pReadmask=0x81dfe60)
at dixutils.c:384
#8 0x08124da0 in WaitForSomething (pClientsReady=0xbf1c398) at
WaitFor.c:215
#9 0x080864cd in Dispatch () at dispatch.c:367
#10 0x0806c6bd in main (argc=14, argv=0xbfb1bbd4, envp=Cannot access
memory at address 0x6460
) at main.c:397
#0 0x007bc424 in __kernel_vsyscall ()
From I830BlockHandler it is doing a drmCommandNone(
DRM_I915_GEM_THROTTLE ).
Here is the edited output from intel_gpu_dump:
batchbuffer at 0x0241b000:
0x0241b000: 0x09000000: MI_LOAD_SCAN_LINES_INCL
0x0241b004: 0x00000438: dword 1
0x0241b008: 0x09000000: MI_LOAD_SCAN_LINES_INCL
0x0241b00c: 0x00000438: dword 1
0x0241b010: 0x01800002: MI_WAIT_FOR_EVENT
0x0241b014: HEAD 0x0200000a: MI_FLUSH
0x0241b018: 0x00000000: MI_NOOP
0x0241b01c: 0x61040000: 3DSTATE_PIPELINE_SELECT
0x0241b020: 0x60010000: CS_URB_STATE
0x0241b024: 0x00000000: dword 1
...
Ringbuffer: Reminder: head pointer is GPU read, tail pointer is CPU write
ringbuffer at 0x00000000:
...
0x00013a04: 0x00000000: MI_NOOP
0x00013a08: 0x10800001: MI_STORE_DATA_INDEX
0x00013a0c: 0x00000080: dword 1
0x00013a10: 0x00004213: dword 2
0x00013a14: 0x01000000: MI_USER_INTERRUPT
0x00013a18: 0x18800180: MI_BATCH_BUFFER_START
0x00013a1c: 0x0241b000: dword 1
0x00013a20: HEAD 0x02000004: MI_FLUSH
0x00013a24: 0x00000000: MI_NOOP
0x00013a28: 0x10800001: MI_STORE_DATA_INDEX
0x00013a2c: 0x00000080: dword 1
0x00013a30: 0x00004214: dword 2
0x00013a34: 0x01000000: MI_USER_INTERRUPT
0x00013a38: TAIL 0x18800180: MI_BATCH_BUFFER_START
0x00013a3c: TAIL 0x02422000: dword 1
0x00013a40: 0x02000004: MI_FLUSH
0x00013a44: 0x00000000: MI_NOOP
0x00013a48: 0x10800001: MI_STORE_DATA_INDEX
0x00013a4c: 0x00000080: dword 1
0x00013a50: 0x00002fcc: dword 2
0x00013a54: 0x01000000: MI_USER_INTERRUPT
0x00013a58: 0x02000002: MI_FLUSH
0x00013a5c: 0x00000000: MI_NOOP
...
Given that the display has 768 lines its never going to hit line 1080.
Barry
More information about the Intel-gfx
mailing list