Bug 37398

Summary: some applications (like wine) crash nouveau and leave it in an unworkable state
Product: xorg Reporter: Andy Matteson <xt.knight>
Component: Driver/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED INVALID QA Contact: Xorg Project Team <xorg-team>
Severity: major    
Priority: medium CC: michel, xt.knight
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
backtrace of crash w/ exaPrepareAccessReg_mixed()
none
xorg trace of exaPrepareAccessReg_mixed()
none
video rom of evga 9500gt
none
backtrace of crash type #2 (ExaCheckPolylines, exaPrepareAccessReg_mixed)
none
backtrace of crash type #3 (ReadRequestFromClient) none

Description Andy Matteson 2011-05-20 01:32:27 UTC
Created attachment 46935 [details]
backtrace of crash w/ exaPrepareAccessReg_mixed()

Whenever when I start a wine application (the best example I have is Notepad++), X crashes either by locking up or restarting itself.  I can reproduce it every time with Notepad++ (one of the only wine apps I even have). Sometimes I can reproduce it with the standard Notepad as well.

I'm using a 9500GT with xserver-xorg-video-nouveau package 0.0.16+git20110323.8378443b-0ubuntu0sarvatt on Ubuntu. (xorg-edgers ppa)

I have collected some data, which I've attached, from another computer via ssh and gdb.
Comment 1 Andy Matteson 2011-05-20 01:33:02 UTC
Created attachment 46936 [details]
xorg trace of exaPrepareAccessReg_mixed()
Comment 2 Andy Matteson 2011-05-20 01:33:45 UTC
# lspci -vvv

02:00.0 VGA compatible controller: nVidia Corporation G96 [GeForce 9500 GT] (rev a1) (prog-if 00 [VGA controller])
	Subsystem: eVga.com. Corp. Device c959
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSE			[SN] Serial number: AbCdEfG73035B
			[CP] Extended capability: 01 10 cc 03
			[RV] Reserved: checksum good, 9 byte(s) reserved
		Read/write fields:
			[RW] Read-write area: 121 byte(s) free
		End
	Capabilities: [5c] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee00000  Data: 4089
	Capabilities: [e0] Express (v1) Legacy Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 unlimited
			ClockPM+ Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 1f, GenCap- CGenEn- ChkCap- ChkEn-
	Kernel driver in use: sky2
	Kernel modules: sky2

^ BTW don't know why it says sky2, that's my network driver
Comment 3 Andy Matteson 2011-05-20 01:34:18 UTC
Created attachment 46937 [details]
video rom of evga 9500gt
Comment 4 Andy Matteson 2011-05-20 02:03:34 UTC
Created attachment 46938 [details]
backtrace of crash type #2 (ExaCheckPolylines, exaPrepareAccessReg_mixed)

this is another crash that happens in the same situation
Comment 5 Andy Matteson 2011-05-20 02:04:33 UTC
Created attachment 46939 [details]
backtrace of crash type #3 (ReadRequestFromClient)

and another crash that happens in that same situation
Comment 6 Andy Matteson 2011-05-20 02:06:40 UTC
Comment on attachment 46938 [details]
backtrace of crash type #2 (ExaCheckPolylines, exaPrepareAccessReg_mixed)

(gdb) bt
#0  __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97
#1  0x00007f207f8be80f in _L_lock_12013 () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007f207f8bc8d8 in __libc_free (mem=0x7f207fbcf1c0) at malloc.c:3736
#3  0x00000000004a3a12 in _XSERVTransFreeConnInfo (ciptr=0x895f40) at /usr/include/X11/Xtrans/Xtrans.c:138
#4  0x00000000004a3ef4 in _XSERVTransClose (ciptr=0x895f40) at /usr/include/X11/Xtrans/Xtrans.c:930
#5  0x0000000000461f1f in CloseWellKnownConnections () at ../../os/connection.c:493
#6  0x000000000045e598 in SigAbortServer (signo=11) at ../../os/log.c:409
#7  0x000000000045f1d2 in FatalSignal (signo=11) at ../../os/log.c:541
#8  <signal handler called>
#9  _int_malloc (av=0x7f207fbcf1c0, bytes=<value optimized out>) at malloc.c:4709
#10 0x00007f207f8bc31e in __libc_malloc (bytes=7056000) at malloc.c:3660
#11 0x00007f207d435b44 in exaPrepareAccessReg_mixed (pPixmap=0x298ca80, index=0, pReg=0x0)
    at ../../exa/exa_migration_mixed.c:203
#12 0x00007f207d43fb36 in ExaCheckPolylines (pDrawable=0x23fcca0, pGC=0x22812a0, mode=0, npt=4, ppt=<value optimized out>)
    at ../../exa/exa_unaccel.c:264
#13 0x00000000004e04d4 in damagePolylines (pDrawable=0x23fcca0, pGC=0x22812a0, mode=0, npt=<value optimized out>, 
    ppt=<value optimized out>) at ../../../miext/damage/damage.c:1065
#14 0x0000000000424601 in ProcPolyLine (client=0x2ab5be0) at ../../dix/dispatch.c:1748
#15 0x0000000000428259 in Dispatch () at ../../dix/dispatch.c:431
#16 0x0000000000421a7e in main (argc=8, argv=<value optimized out>, envp=<value optimized out>) at ../../dix/main.c:287

(gdb) bt full
#0  __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97
No locals.
#1  0x00007f207f8be80f in _L_lock_12013 () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#2  0x00007f207f8bc8d8 in __libc_free (mem=0x7f207fbcf1c0) at malloc.c:3736
        ar_ptr = 0x7f207fbcf1c0
        p = 0x895f90
        hook = <value optimized out>
#3  0x00000000004a3a12 in _XSERVTransFreeConnInfo (ciptr=0x895f40) at /usr/include/X11/Xtrans/Xtrans.c:138
No locals.
#4  0x00000000004a3ef4 in _XSERVTransClose (ciptr=0x895f40) at /usr/include/X11/Xtrans/Xtrans.c:930
        ret = 0
#5  0x0000000000461f1f in CloseWellKnownConnections () at ../../os/connection.c:493
        i = <value optimized out>
#6  0x000000000045e598 in SigAbortServer (signo=11) at ../../os/log.c:409
No locals.
#7  0x000000000045f1d2 in FatalSignal (signo=11) at ../../os/log.c:541
        beenhere = 1
#8  <signal handler called>
No symbol table info available.
#9  _int_malloc (av=0x7f207fbcf1c0, bytes=<value optimized out>) at malloc.c:4709
        p = <value optimized out>
        iters = <value optimized out>
        nb = 7056016
        idx = 127
        bin = 0x7f207fbcf9f8
        victim = 0x331d7e0
        size = <value optimized out>
        victim_index = <value optimized out>
        remainder = 0x39d8270
        remainder_size = <value optimized out>
        block = <value optimized out>
        bit = <value optimized out>
        map = 2147479551
        fwd = <value optimized out>
        bck = <value optimized out>
        errstr = 0x0
        __func__ = "_int_malloc"
#10 0x00007f207f8bc31e in __libc_malloc (bytes=7056000) at malloc.c:3660
        ar_ptr = 0x7f207fbcf1c0
        victim = <value optimized out>
        hook = <value optimized out>
        __func__ = "__libc_malloc"
#11 0x00007f207d435b44 in exaPrepareAccessReg_mixed (pPixmap=0x298ca80, index=0, pReg=0x0)
    at ../../exa/exa_migration_mixed.c:203
        pixmaps = {{as_dst = 1, as_src = 0, pPix = 0x7f207f8bc8e3, pReg = 0x7fff837226e8}}
        pExaPixmap = 0x298cad0
        has_gpu_copy = <value optimized out>
        success = <value optimized out>
#12 0x00007f207d43fb36 in ExaCheckPolylines (pDrawable=0x23fcca0, pGC=0x22812a0, mode=0, npt=4, ppt=<value optimized out>)
    at ../../exa/exa_unaccel.c:264
        pExaScr = 0x8c5e90
        pExaGC = 0x2281368
#13 0x00000000004e04d4 in damagePolylines (pDrawable=0x23fcca0, pGC=0x22812a0, mode=0, npt=<value optimized out>, 
    ppt=<value optimized out>) at ../../../miext/damage/damage.c:1065
        pGCPriv = 0x2281378
        oldFuncs = 0x7dfbc0
#14 0x0000000000424601 in ProcPolyLine (client=0x2ab5be0) at ../../dix/dispatch.c:1748
        npoint = 60654192
        pGC = 0x22812a0
        pDraw = 0x23fcca0
        stuff = 0x2337ba4
#15 0x0000000000428259 in Dispatch () at ../../dix/dispatch.c:431
        clientReady = 0xb2bda0
        result = <value optimized out>
        client = 0x2ab5be0
        nready = 0
        icheck = 0x7f1290
        start_tick = 10300
#16 0x0000000000421a7e in main (argc=8, argv=<value optimized out>, envp=<value optimized out>) at ../../dix/main.c:287
        i = <value optimized out>
        alwaysCheckForInput = {0, 1}
Comment 8 Marcin Slusarz 2011-12-06 10:37:39 UTC
Michel: There's no such commit in xserver tree...
Comment 10 Marcin Slusarz 2011-12-06 12:15:08 UTC
Thanks. So there is a released xserver with this commit.

Andy: can you test xorg-server 1.11 (or newer)?
Comment 11 Emil Velikov 2011-12-06 12:34:41 UTC
Note I have experienced the same problem and xserver 1.11 did resolve the problem

The issue can be summarised

* Dual head setup
* Start up wine (possibly other applications as well)
* Observe the X crash (leading to exaPrepareAccessReg_mixed)

As a "quick and dirty" check (without updating xserver), startup X with only one monitor connected to the system
Comment 12 Ilia Mirkin 2013-08-18 18:10:23 UTC
It appears that this bug report has laid dormant for quite a while. Sorry we haven't gotten to it. Since we fix bugs all the time, chances are pretty good that your issue has been fixed with the latest software. Please give it a shot. (Linux kernel 3.10.7, xf86-video-nouveau 1.0.9, mesa 9.1.6, or their git versions.) If upgrading to the latest isn't an option for you, your distro's bugzilla is probably the right destination for your bug report.

In an effort to clean up our bug list, we're pre-emptively closing all bugs that haven't seen updates since 2011. If the original issue remains, please make sure to provide fresh info, see http://nouveau.freedesktop.org/wiki/Bugs/ for what we need to see, and re-open this one.

Thanks,

The Nouveau Team

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.