Bug 24346

Summary: X works without DRM but gets into endless loop waiting on CP (RS300) to become idle
Product: DRI Reporter: Reinoud Zandijk <reinoud>
Component: DRM/RadeonAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED NOTABUG QA Contact:
Severity: blocker    
Priority: high CC: reinoud
Version: unspecifiedKeywords: have-backtrace, regression
Hardware: x86 (IA32)   
OS: NetBSD   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg + Xorg.0.log's none

Description Reinoud Zandijk 2009-10-06 07:32:02 UTC
Created attachment 30110 [details]
dmesg +  Xorg.0.log's

My machine is a Asus Pundit with an ATi Radeon 9100 IGP (RS300).

When running without DRM support in the kernel the X server will try to open the drm device associated with the card but this fails and then disables DRI and runs fine.

When i include drm support for the radeons i the X server gets into an endless loop. Just after the R200 microcode is loaded, the engine reset and cp reset work but cp start won't put it into idle. It will never become idle since. All commands will get queued and eventually the ring buffer gets full and it starts to emit put cp_idle commands from the claimed IRQ. This consumes 100% CPU time for the kernel due to the timeout waiting on the fifo. In the mean time the X server also claims 100% CPU (HT machine). When running without HT, i managed to get a log where i could sync() and see what went wrong from the log on reset.

Note that i had to use PCI since the AGP driver for this board is not yet present/bugfree.

Also note that the dmesg log has some debug messages in it from when i tried to trace the problem down :)
Comment 1 Dave Airlie 2009-10-06 13:15:03 UTC
AFAIK you can't use PCI support on these IGPs they require a working AGP driver.

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.