Date: Wed, 22 Feb 2006 10:11:46 -0800 From: Alfred Perlstein <alfred@freebsd.org> To: anholt@freebsd.org, multimedia@freebsd.org Subject: radeon lockups with drm/dri Message-ID: <20060222181146.GB73389@elvis.mu.org>
next in thread | raw e-mail | index | archive | help
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!
--
- Alfred Perlstein
- CTO Okcupid.com / FreeBSD Hacker / All that jazz -
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060222181146.GB73389>
