Problem with dump stalling
David Peall
david at esn.org.za
Thu Oct 9 23:36:03 PDT 2008
After some digging it would appear the patch has not been committed ?
From
/src/sys/kern/subr_sleepqueue.c
/*
* Lock sleepq chain before unlocking proc
* without this, we could lose a race.
*/
mtx_lock_spin(&sc->sc_lock);
PROC_UNLOCK(p);
thread_lock(td);
if (ret == 0) {
Should read
/*
+ * Lock the per-process spinlock prior to dropping the PROC_LOCK
+ * to avoid a signal delivery race. PROC_LOCK, PROC_SLOCK, and
+ * thread_lock() are currently held in tdsignal().
*/
+ PROC_SLOCK(p);
mtx_lock_spin(&sc->sc_lock);
PROC_UNLOCK(p);
thread_lock(td);
+ PROC_SUNLOCK(p);
if (ret == 0) {
Also :
__FBSDID("$FreeBSD: src/sys/kern/subr_sleepqueue.c,v 1.39.4.1 2008/01/29
16:37:04 jhb Exp $");
Regards
--
David Peall :: IT Manager
e-Schools' Network :: http://www.esn.org.za/
Phone +27 (021) 674-9140
More information about the freebsd-stable
mailing list