Bug 14284

Summary: frequent DMA queue hangs on NV34 on powerpc
Product: xorg Reporter: Danny <moondrake>
Component: Driver/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: git   
Hardware: PowerPC   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
xorg log
none
list of methods before the dma lockup
none
patch enabling pcigart and making sure cmdbuf goes there none

Description Danny 2008-01-28 22:42:47 UTC
When stressing the machine a bit (scrolling large amounts of icons, or running gtkperf usually does the trick) but also after some time of normal use, I inevitably get X to reset because of a hang in the DMA queue.

Drm messages:
Jan 27 01:23:23 legolas kernel: [  205.234985] [drm] PFIFO_DMA_PUSHER - Ch 1 put: 32, get:948 mthd 0x0a2c status 0x00001000
Jan 27 01:23:23 legolas kernel: [  205.235011] [drm] PGRAPH_ERROR - nSource: ILLEGAL_MTHD, nStatus: PROTECTION_FAULT
Jan 27 01:23:23 legolas kernel: [  205.235021] [drm] PGRAPH_ERROR - Ch 1/6 Class 0x009f Mthd 0x0a00 Data 0x00030303:0x00011229
Jan 27 01:23:23 legolas kernel: [  205.235032] [drm] PGRAPH_ERROR - nSource: ILLEGAL_MTHD, nStatus: PROTECTION_FAULT
Jan 27 01:23:23 legolas kernel: [  205.235040] [drm] PGRAPH_ERROR - Ch 1/6 Class 0x009f Mthd 0x0a04 Data 0x00030303
:0x00030303

This then continues until method 0a2c. The PGRAPH_ERROR are not always there. The pusher interrupt is always happening. Sometimes, I also get 
[drm] PFIFO_CACHE_ERROR - Ch 1/0 Mthd 0x0000 Data 0x6f000000 status 0x00000001

Xorg log attached. 

Danny
Comment 1 Danny 2008-01-28 22:46:30 UTC
Created attachment 13998 [details]
xorg log

fifo dump of crash. I have many similar ones. I could not find a connection between them. But please ask if more are needed.
Comment 2 Danny 2008-01-28 23:44:33 UTC
Created attachment 14002 [details]
list of methods before the dma lockup

This is a list of methods called by the X driver before it locked up. In this particular case I didn't have any output on whether BEGIN_RING==OUT_RING but in a previous crash log I outputted this info and it seemed to be ok (the only cases in which we have 1 out_ring more is when we hit nouveau_dma_wait)

d.
Comment 3 Danny 2008-01-29 03:21:55 UTC
bug #14287 looks identical to this one.

d.
Comment 4 Danny 2008-02-08 01:51:22 UTC
Created attachment 14214 [details] [review]
patch enabling pcigart and making sure cmdbuf goes there

DMA queue hangs only happen when the command buffer is in FB. Turning on
AGP on powerpc leads to lockups with DFS, even when using a PCI gart. 
Therefore, current drm has agp_init disabled. This patch enables PCI
gart in the DDX, and makes sure the cmd buffer goes there.
Comment 5 Danny 2008-02-20 02:51:36 UTC
patch was applied, fixed.

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.