Mailinglist Archive: radeonhd (307 mails)

< Previous Next >
Re: [radeonhd] xvideo - high CPU/run away process
  • From: Patrick Oglesby <octoberblu3@xxxxxxxxx>
  • Date: Fri, 20 Feb 2009 22:31:36 -0500
  • Message-id: <56cb52f90902201931h5174d8cau27b7b4fdb776472b@xxxxxxxxxxxxxx>
On Fri, Feb 20, 2009 at 7:10 PM, JP Fournier <jape42@xxxxxxxxx> wrote:

Here's the result from my testing:

- current git + this patch :
- CPU usage back to normal when playing regular 640x480 mpeg2 xvideo in
mythtv (say 5% Xorg CPU usage)
- zooming in on the recording in mythtv still results in a runaway Xorg
process (100% CPU - even kill -9 did not work (neat))

Since I never ran the zoom test for you in mythtv with the previous debug
patch, I figured I'd give it a shot:

(normal video)
wait_vline_range: start 0 stop 1079
wait_vline_range: start 0 stop 1079
wait_vline_range: start 0 stop 1079
wait_vline_range: start 0 stop 1079
(zoom in)
wait_vline_range: start -90 stop 1169
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!

Seems like dmesg logs are getting flooded too:

[ 465.356686] [drm] wait idle failed status : 0xA0003030 0x00000003
[ 465.460908] [drm] wait idle failed status : 0xA0003030 0x00000003
[ 465.565086] [drm] wait idle failed status : 0xA0003030 0x00000003
[ 465.669180] [drm] wait idle failed status : 0xA0003030 0x00000003


Just in case I've applied your patch incorrectly, this is what my
wait_vline_range function looks like:


void
wait_vline_range(ScrnInfoPtr pScrn, drmBufPtr ib, int crtc, int start, int
stop)
{
RHDPtr rhdPtr = RHDPTR(pScrn);

ErrorF("wait_vline_range: start %d stop %d\n", start, stop);

if ((crtc < 0) || (crtc > 1))
return;

if(!rhdPtr->Crtc[crtc]->Active)
return;

start = max(start, 0);
stop = min(stop, rhdPtr->Crtc[crtc]->Height);

if (stop <= start)
return;

/* set the VLINE range */
if(crtc == 0)
ereg(ib, D1MODE_VLINE_START_END, start | (stop << 16));
else
ereg(ib, D2MODE_VLINE_START_END, start | (stop << 16));

/* tell the CP to poll the VLINE state register */
pack3 (ib, IT_WAIT_REG_MEM, 6);
e32 (ib, WAIT_REG | WAIT_EQ);
if(crtc == 0)
e32 (ib, D1MODE_VLINE_STATUS >> 2);
else
e32 (ib, D2MODE_VLINE_STATUS >> 2);
e32 (ib, 0);
e32 (ib, 0); // Ref value
e32 (ib, 0x1000); // Mask
e32 (ib, 10); // Wait interval
}

regards,

jp




On Friday 20 February 2009 12:16:46 Christian König wrote:
Hi,

attached is a patch that should fix the problem with the runaway
process. Please do a git reset before applying this patch.

Thanks for testing,
Christian.



Similar story here. I recently updated my mplayer, and now the
pan/zoom doesn't crash anymore, however, it doesn't zoom evenly on the
video; the video is shifted as it zooms so the left edge stays
stationary. The excess video goes off the right edge with no problem.

Now my X.org.0.log says the following on crashing in Mythtv when zooming:
(Xorg.0.log)
wait_vline_range: start 0 stop 1023
wait_vline_range: start 0 stop 1023
wait_vline_range: start 0 stop 1023
wait_vline_range: start 0 stop 1108
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!
(WW) RADEONHD(0): DRMCPIdle: DRM CP IDLE returned BUSY!

(message)
Feb 20 22:05:16 killbot kernel: [drm] wait idle failed status :
0xA0003030 0x00000003
Feb 20 22:05:19 killbot last message repeated 25 times
Feb 20 22:05:19 killbot kernel: [drm] wait idle failed status :
0xA00030B0 0x00000003
Feb 20 22:05:19 killbot kernel: [drm] wait idle failed status :
0xA0003030 0x00000003
Feb 20 22:05:20 killbot last message repeated 15 times
Feb 20 22:05:21 killbot kernel: [drm] wait idle failed status :
0xA00030F0 0x00000003
Feb 20 22:05:21 killbot kernel: [drm] wait idle failed status :
0xA0003030 0x00000003
Feb 20 22:05:29 killbot last message repeated 83 times
Feb 20 22:05:29 killbot kernel: [drm] wait idle failed status :
0xA00030B0 0x00000003
Feb 20 22:05:29 killbot kernel: [drm] wait idle failed status :
0xA0003030 0x00000003
Feb 20 22:05:32 killbot last message repeated 24 times

This is on the machine with the HD 2600. I can test the HD3300
machine also if you would like.
I hope this helps,
Patrick
--
To unsubscribe, e-mail: radeonhd+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: radeonhd+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups