radeon lockups with drm/dri

Nikolas Britton nikolas.britton at gmail.com
Thu Feb 23 00:48:09 PST 2006


On 2/22/06, Alfred Perlstein <alfred at freebsd.org> wrote:
> I've had a couple of times where my X server went bonkers
> and wouldn't respond to "kill -9" I think this has to do
> with the hardware going for a nap.
>
> Basically the X server gets stuck in "rdnrel".
>
> This is in:
> dev/drm/radeon_cp.c:radeon_do_release()
>
>                 if (dev_priv->cp_running) {
>                         /* Stop the cp */
>                         while ((ret = radeon_do_cp_idle(dev_priv)) != 0) {
>                                 DRM_DEBUG("radeon_do_cp_idle %d\n", ret);
> #ifdef __linux__
>                                 schedule();
> #else
> #if defined(__FreeBSD__) && __FreeBSD_version > 500000
>                                 msleep(&ret, &dev->dev_lock, PZERO, "rdnrel",
>                                        1);
> #else
>                                 tsleep(&ret, PZERO, "rdnrel", 1);
> #endif
> #endif
>                         }
>                         radeon_do_cp_stop(dev_priv);
>                         radeon_do_engine_reset(dev);
>                 }
>
> It appears that "radeon_do_cp_idle" fails over and over leading
> to an unkillable X server.
>
> Can this loop be changed to abort after a number of retries?
>
> Is a way to force a reset of the device when this happens?
>
> thank you!

Try the FreeBSD X11 mailing list:
http://lists.freebsd.org/mailman/listinfo/freebsd-x11


--
BSD Podcasts @ http://bsdtalk.blogspot.com/


More information about the freebsd-multimedia mailing list