kern/53712: drm/DRI broken (out of DMA buffers?) for ATI Radeon 7200

Pierre Beyssac pb at fasterix.frmug.org
Wed Jun 25 02:20:17 PDT 2003


>Number:         53712
>Category:       kern
>Synopsis:       drm/DRI broken (out of DMA buffers?) for ATI Radeon 7200
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jun 25 02:20:15 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Pierre Beyssac
>Release:        FreeBSD 5.1-CURRENT i386
>Organization:
none
>Environment:
System: FreeBSD fasterix.frmug.org 5.1-CURRENT FreeBSD 5.1-CURRENT #4: Mon Jun 23 22:10:42 CEST 2003 pb at fasterix.frmug.org:/home/src/sys/i386/compile/ASTERIX i386

	-current Kernel and userland as of 2003-06-23, but problem
	exists since end April 2003.

	XFree server 4.3.0, version 8 of the package.

>Description:

	DRI-configured X server starts correctly, then locks up in
	a busy loop after some time.

	The busy loop involves repeated calls to ioctl(DRM_IOCTL_DMA)
	returning nothing but EBUSY. From the code, it seems to
	mean that /sys/dev/drm/radeon_cp.c:radeon_freelist_get()
	returns NULL pointers.

	The busy loop also seems to involve repeated occurences of
	SIGALRM, if truss is right.

>How-To-Repeat:

	Configure X11 with DRI.

	Start X11 server and three or four xterms. Run a ls -lR in
	one of them and wait for 10-20 seconds for the problem to
	occur. CTRL-C and repeat 2-4 times if necessary.

	Or start a textured, GLX 3D rendered application (not
	glxgears as it doesn't exhibit the problem) and wait for
	about 10 seconds.

	Login from another machine and use truss on the XFree86
	process to see repeated ioctl calls.

>Fix:

	Workaround: disable DRI or use pre-April -current (where
	the older drm code didn't exhibit that problem).
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list