Date: Tue, 26 Aug 2008 17:51:29 +0200 From: "Paul B. Mahol" <onemda@gmail.com> To: "Robert Noland" <rnoland@freebsd.org> Cc: freebsd-x11 <freebsd-x11@freebsd.org>, jimmiejaz@gmail.com Subject: Re: [CFT] drm updates Message-ID: <3a142e750808260851u13de6cf9jf2640c195f9be81e@mail.gmail.com> In-Reply-To: <3a142e750808260741p224bd68aw52711eab7e76aa59@mail.gmail.com> References: <48B1A590.2040701@gmail.com> <1219674352.53929.2.camel@squirrel.corp.cox.com> <3a142e750808250928n612761cch69a3bd2ebf374f92@mail.gmail.com> <3a142e750808260741p224bd68aw52711eab7e76aa59@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 8/26/08, Paul B. Mahol <onemda@gmail.com> wrote: > On 8/25/08, Paul B. Mahol <onemda@gmail.com> wrote: >> On 8/25/08, Robert Noland <rnoland@freebsd.org> wrote: >>> On Sun, 2008-08-24 at 14:16 -0400, Jimmie James wrote: >>>> Is this the type of lockup you're seeing? >>>> >>>> >>>> Error in I830WaitLpRing(), timeout for 2 seconds >>>> pgetbl_ctl: 0x3ffc0001getbl_err: 0x0 >>>> ipeir: 0 iphdr: 7d000006 >>>> LP ring tail: 1afa0 head: 1ad64 len: 1f001 start 0 >>>> eir: 0 esr: 0 emr: ffff >>>> instdone: fa41 instpm: 0 >>>> memmode: 108 instps: 800f00c4 >>>> hwstam: fffe ier: 2 imr: 8 iir: 80 >>>> Ring at virtual 0x2884d000 head 0x1ad64 tail 0x1afa0 count 143 >>>> >>>> >>>> >>>> (WW) intel(0): PRB0_CTL (0x0001f001) indicates ring buffer enabled >>>> (WW) intel(0): PRB0_HEAD (0x13e1ad64) and PRB0_TAIL (0x0001afa8) >>>> indicate ring buffer not flushed >>>> (WW) intel(0): Existing errors found in hardware state. >>> >>> Possibly, I haven't gotten this output though. Can you describe how you >>> reached this state? >>> >>> robert. >> >> I dont have last 3 "(WW)" lines. >> > > Actually I have, but with UP kernel: > > (WW) intel(0): PRB0_CTL (0x0001f001) indicates ring buffer enabled > (WW) intel(0): PRB0_HEAD (0x0000afdc) and PRB0_TAIL (0x0000dd98) > indicate ring buffer not flushed > (WW) intel(0): Existing errors found in hardware state. > > And on UP kernel it is posible to kill Xorg via keyboard > (ctrl+alt+backspace) > but it fails to start again. > > Error in I830WaitLpRing(), timeout for 2 seconds > pgetbl_ctl: 0x3ffc0001 getbl_err: 0x00000000 > ipeir: 0x00000000 iphdr: 0x6db3ffff > LP ring tail: 0x00001ee0 head: 0x0000afdc len: 0x0001f001 start 0x00000000 > eir: 0x0000 esr: 0x0000 emr: 0xffff > instdone: 0xffc1 instpm: 0x0000 > memmode: 0x00000306 instps: 0x800f04d0 > hwstam: 0xeffe ier: 0x0002 imr: 0x0000 iir: 0x1070 > >> It can be caused by any application that use direct rendering: 3D >> games(OpenGL): >> examples are zsnes, celestia, stellarium, etc. > > On UP kernel I tested blender. > >> I'm using SMP kernel. >> >> >> Last fatal server error from recent Xorg.0.log.old had following last >> lines: >> >> (**) intel(0): Framebuffer compression enabled >> (**) intel(0): Tiling enabled >> (==) intel(0): Write-combining range (0xf4400000,0x80000) was already >> clear >> (==) intel(0): Write-combining range (0xf4480000,0x40000) was already >> clear >> (==) intel(0): VideoRam: 7932 KB >> (II) intel(0): Attempting memory allocation with tiled buffers. >> (EE) intel(0): Failed to allocate framebuffer. Is your VideoRAM set too >> low? >> (II) intel(0): Tiled allocation failed. >> (WW) intel(0): Couldn't allocate tiled memory, fb compression disabled >> (II) intel(0): Attempting memory allocation with untiled buffers. >> (WW) intel(0): Failed to allocate EXA offscreen memory. >> (II) intel(0): Untiled allocation failed. >> (II) intel(0): Couldn't allocate 3D memory, disabling DRI. >> ^^^^^^^^^^^^^^^^^^^^^^^^ >> (II) intel(0): Attempting memory allocation with untiled buffers. >> (WW) intel(0): Failed to allocate EXA offscreen memory. >> (II) intel(0): Untiled allocation failed. >> (EE) intel(0): Couldn't allocate video memory >> >> Fatal server error: >> AddScreen/ScreenInit failed for driver 0 >> >> >> Note that I'm unable to switch vty to console (atkbd0), but killing >> Xorg from network >> is possible. >> >> Note that panic/hardlock with unloading loaded modules from kernel >> (with/out Xorg session) >> is regression from previous drm state in CURRENT. Could backtrace somehow >> help? >> >>> >>>> >>>> vgapci0@pci0:0:2:0: class=0x030000 card=0x25821043 chip=0x25828086 >>>> rev=0x04 hdr=0x00 >>>> vendor = 'Intel Corporation' >>>> device = '82915G/GV/GL, 82910GL Integrated Graphics Device' >>>> class = display >>>> subclass = VGA >>>> vgapci1@pci0:0:2:1: class=0x038000 card=0x25821043 chip=0x27828086 >>>> rev=0x04 hdr=0x00 >>>> vendor = 'Intel Corporation' >>>> device = '82915G Graphics device: 82915G/GV/910GL Express >>>> Chipset Family' >>>> class = display >>>> >>>> >On Sun, 2008-08-24 at 12:29 +0200, Paul B. Mahol wrote: >>>> > On 8/24/08, Robert Noland <rnoland@freebsd.org> wrote: >>>> > > I've uploaded a final patch set to: >>>> > > >>>> > > http://people.freebsd.org/~rnoland >>>> > > >>>> > > I have committed this version to -CURRENT, but patches are available >>>> > > fo= >>>> r >>>> > > RELENG_7 as well. >>>> > > >>>> > > This version mostly just fixes a long standing memory leak. >>>> > > >>>> > > All of the reports for radeon have been good. I'm still seeing a >>>> > > few >>>> > > odd things with Intel though. The most severe issue is on my 965gm. >>>> > > After restarting X, it will hang in a way that I have never seen >>>> > > before... The small amount of evidence that I have been able to >>>> > > collec= >>>> t >>>> > > suggests that this may be due to mesa trashing the hardware. I've >>>> > > spen= >>>> t >>>> > > a couple of days trying to figure out exactly what could be wrong. >>>> > > Thi= >>>> s >>>> > > morning I rebuilt my kernel with a stock drm from src and I got >>>> > > exactly >>>> > > the same hang. Since this update does help lots of people and >>>> > > doesn't >>>> > > seem to make things worse than they were to begin with, I went ahead >>>> > > an= >>>> d >>>> > > committed it. >>>> > > >>>> > > I was incorrect about the patch to libdrm... It isn't needed in >>>> > > 2.3.1 >>>> > > and it is already committed upstream. I'll commit that update to >>>> > > ports >>>> > > soon also. It, along with a recent xf86-video-* are needed to >>>> > > enable >>>> > > the new vblank behavior, which will disable vblank interrupts if >>>> > > there >>>> > > are no active consumers. >>>> > > >>>> > > robert. >>>> > > >>>> >=20 >>>> > Do I need to update some ports? because with kernel from HEAD I have >>>> > encountered problems when drm is loaded (agp + drm + i915) >>>> > astro/stellarium caused deadlock, only mouse pointer could move, if I >>>> > did= >>>> not >>>> > started it, system will panic anyway after some time. I did not yet >>>> > teste= >>>> d >>>> > vty switching,.... Here is more kernel debug info (after updating libdrm and testing with glxgears) pid 7176 (Xorg), uid 0: exited on signal 6 free_unr with the following non-sleepable locks held: exclusive sleep mutex drmdev (drmdev) r = 0 (0xc4783cec) locked @ /usr/local/src/sys/modules/drm/drm/../../../dev/drm/drm_irq.c:256 KDB: stack backtrace: db_trace_self_wrapper(c0b570bb,c43887cc,c07f0dd5,c4d79b8f,100,...) at db_trace_self_wrapper+0x26 kdb_backtrace(c4d79b8f,100,ffffffff,c0dcf79c,c4388800,...) at kdb_backtrace+0x29 _witness_debugger(c0b5930a,c4388814,4,1,0,...) at _witness_debugger+0x25 witness_warn(5,0,c0b58e81,c4388838,c07a528c,...) at witness_warn+0x1c1 free_unr(c49776c0,1,c4d79696,a8,c4783ef4,...) at free_unr+0x2b drm_drawable_free_all(c4783c00,c4d7bce0,c4d796d9,1ba,0,...) at drm_drawable_free_all+0x174 drm_lastclose(c4646c80,1,c4d796d9,2e3,8,...) at drm_lastclose+0xdf drm_close(c4b37000,3,2000,c4971230,c4388900,...) at drm_close+0x2ca giant_close(c4b37000,3,2000,c4971230,c4971230,...) at giant_close+0x67 devfs_close(c4388948,3,c4d4d430,3,c4388968,...) at devfs_close+0x29a VOP_CLOSE_APV(c0c26380,c4388948,c0b61a19,124,c0c63f80,...) at VOP_CLOSE_APV+0xa5 vn_close(c4d4d430,3,c4ad9700,c4971230,0,...) at vn_close+0xe4 vn_closefile(c49df1c0,c4971230,c43889ec,c0784853,c49df1c0,...) at vn_closefile+0xe9 devfs_close_f(c49df1c0,c4971230,0,0,c49df1c0,...) at devfs_close_f+0x25 _fdrop(c49df1c0,c4971230,c4388a20,c07f0c1c,0,c49712d4,c0dcf798,c0c317b0,c0b4f841,c51c452c,6a7,c0b4f841,c4388a48,c07b9fe0,c51c452c,8,c0b4f841,6a7) at _fdrop+0x43 closef(c49df1c0,c4971230,6a7,6a5,c4470340,...) at closef+0x290 fdfree(c4971230,0,c0b5014d,102,c49712d4,...) at fdfree+0x387 exit1(c4971230,1,c0b53f0a,aad,c0b4ed7f,...) at exit1+0x543 sigexit(c4971230,1,c0b53f0a,a3d,c556baa8,...) at sigexit+0xaaf postsig(1,0,c0b587c6,df,c496d7d4,...) at postsig+0x1dd ast(c4388d38) at ast+0x37f doreti_ast() at doreti_ast+0x17 uma_zalloc_arg: zone "16" with the following non-sleepable locks held: exclusive sleep mutex drmdev (drmdev) r = 0 (0xc4783cec) locked @ /usr/local/src/sys/modules/drm/drm/../../../dev/drm/drm_irq.c:256 KDB: stack backtrace: db_trace_self_wrapper(c0b570bb,c438874c,c07f0dd5,c4d79b8f,100,...) at db_trace_self_wrapper+0x26 kdb_backtrace(c4d79b8f,100,ffffffff,c0dcf79c,c4388780,...) at kdb_backtrace+0x29 _witness_debugger(c0b5930a,c4388794,4,1,0,...) at _witness_debugger+0x25 witness_warn(5,0,c0b78fa6,c0b2b3ab,c0b5930a,...) at witness_warn+0x1c1 uma_zalloc_arg(c1872960,0,102,2,1,...) at uma_zalloc_arg+0x34 malloc(10,c0c34a40,102,c4388838,c07a528c,...) at malloc+0xd2 free_unr(c49776c0,1,c4d79696,a8,c4783ef4,...) at free_unr+0x47 drm_drawable_free_all(c4783c00,c4d7bce0,c4d796d9,1ba,0,...) at drm_drawable_free_all+0x174 drm_lastclose(c4646c80,1,c4d796d9,2e3,8,...) at drm_lastclose+0xdf drm_close(c4b37000,3,2000,c4971230,c4388900,...) at drm_close+0x2ca giant_close(c4b37000,3,2000,c4971230,c4971230,...) at giant_close+0x67 devfs_close(c4388948,3,c4d4d430,3,c4388968,...) at devfs_close+0x29a VOP_CLOSE_APV(c0c26380,c4388948,c0b61a19,124,c0c63f80,...) at VOP_CLOSE_APV+0xa5 vn_close(c4d4d430,3,c4ad9700,c4971230,0,...) at vn_close+0xe4 vn_closefile(c49df1c0,c4971230,c43889ec,c0784853,c49df1c0,...) at vn_closefile+0xe9 devfs_close_f(c49df1c0,c4971230,0,0,c49df1c0,...) at devfs_close_f+0x25 _fdrop(c49df1c0,c4971230,c4388a20,c07f0c1c,0,c49712d4,c0dcf798,c0c317b0,c0b4f841,c51c452c,6a7,c0b4f841,c4388a48,c07b9fe0,c51c452c,8,c0b4f841,6a7) at _fdrop+0x43 closef(c49df1c0,c4971230,6a7,6a5,c4470340,...) at closef+0x290 fdfree(c4971230,0,c0b5014d,102,c49712d4,...) at fdfree+0x387 exit1(c4971230,1,c0b53f0a,aad,c0b4ed7f,...) at exit1+0x543 sigexit(c4971230,1,c0b53f0a,a3d,c556baa8,...) at sigexit+0xaaf postsig(1,0,c0b587c6,df,c496d7d4,...) at postsig+0x1dd ast(c4388d38) at ast+0x37f doreti_ast() at doreti_ast+0x17 uma_zalloc_arg: zone "16" with the following non-sleepable locks held: exclusive sleep mutex drmdev (drmdev) r = 0 (0xc4783cec) locked @ /usr/local/src/sys/modules/drm/drm/../../../dev/drm/drm_irq.c:256 KDB: stack backtrace: db_trace_self_wrapper(c0b570bb,c438874c,c07f0dd5,c4d79b8f,100,...) at db_trace_self_wrapper+0x26 kdb_backtrace(c4d79b8f,100,ffffffff,c0dcf79c,c4388780,...) at kdb_backtrace+0x29 _witness_debugger(c0b5930a,c4388794,4,1,0,...) at _witness_debugger+0x25 witness_warn(5,0,c0b78fa6,c0b2b3ab,c0b5930a,...) at witness_warn+0x1c1 uma_zalloc_arg(c1872960,0,102,2,1,...) at uma_zalloc_arg+0x34 malloc(10,c0c34a40,102,c4388838,c07a528c,...) at malloc+0xd2 free_unr(c49776c0,1,c4d79696,a8,c4783ef4,...) at free_unr+0x66 drm_drawable_free_all(c4783c00,c4d7bce0,c4d796d9,1ba,0,...) at drm_drawable_free_all+0x174 drm_lastclose(c4646c80,1,c4d796d9,2e3,8,...) at drm_lastclose+0xdf drm_close(c4b37000,3,2000,c4971230,c4388900,...) at drm_close+0x2ca giant_close(c4b37000,3,2000,c4971230,c4971230,...) at giant_close+0x67 devfs_close(c4388948,3,c4d4d430,3,c4388968,...) at devfs_close+0x29a VOP_CLOSE_APV(c0c26380,c4388948,c0b61a19,124,c0c63f80,...) at VOP_CLOSE_APV+0xa5 vn_close(c4d4d430,3,c4ad9700,c4971230,0,...) at vn_close+0xe4 vn_closefile(c49df1c0,c4971230,c43889ec,c0784853,c49df1c0,...) at vn_closefile+0xe9 devfs_close_f(c49df1c0,c4971230,0,0,c49df1c0,...) at devfs_close_f+0x25 _fdrop(c49df1c0,c4971230,c4388a20,c07f0c1c,0,c49712d4,c0dcf798,c0c317b0,c0b4f841,c51c452c,6a7,c0b4f841,c4388a48,c07b9fe0,c51c452c,8,c0b4f841,6a7) at _fdrop+0x43 closef(c49df1c0,c4971230,6a7,6a5,c4470340,...) at closef+0x290 fdfree(c4971230,0,c0b5014d,102,c49712d4,...) at fdfree+0x387 exit1(c4971230,1,c0b53f0a,aad,c0b4ed7f,...) at exit1+0x543 sigexit(c4971230,1,c0b53f0a,a3d,c556baa8,...) at sigexit+0xaaf postsig(1,0,c0b587c6,df,c496d7d4,...) at postsig+0x1dd ast(c4388d38) at ast+0x37f doreti_ast() at doreti_ast+0x17 drm0: [ITHREAD] pid 9156 (Xorg), uid 0: exited on signal 6
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3a142e750808260851u13de6cf9jf2640c195f9be81e>