svn commit: r274610 - stable/10/sys/kern
Konstantin Belousov
kib at FreeBSD.org
Mon Nov 17 01:01:46 UTC 2014
Author: kib
Date: Mon Nov 17 01:01:45 2014
New Revision: 274610
URL: https://svnweb.freebsd.org/changeset/base/274610
Log:
MFC r274343:
When sleeping waiting for the profiling stop, always set P_STOPPROF
before dropping process lock. Clear P_STOPPROF when doing wakeup.
Modified:
stable/10/sys/kern/kern_clock.c
stable/10/sys/kern/subr_prof.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/kern/kern_clock.c
==============================================================================
--- stable/10/sys/kern/kern_clock.c Mon Nov 17 00:59:45 2014 (r274609)
+++ stable/10/sys/kern/kern_clock.c Mon Nov 17 01:01:45 2014 (r274610)
@@ -669,11 +669,11 @@ stopprofclock(p)
PROC_LOCK_ASSERT(p, MA_OWNED);
if (p->p_flag & P_PROFIL) {
if (p->p_profthreads != 0) {
- p->p_flag |= P_STOPPROF;
- while (p->p_profthreads != 0)
+ while (p->p_profthreads != 0) {
+ p->p_flag |= P_STOPPROF;
msleep(&p->p_profthreads, &p->p_mtx, PPAUSE,
"stopprof", 0);
- p->p_flag &= ~P_STOPPROF;
+ }
}
if ((p->p_flag & P_PROFIL) == 0)
return;
Modified: stable/10/sys/kern/subr_prof.c
==============================================================================
--- stable/10/sys/kern/subr_prof.c Mon Nov 17 00:59:45 2014 (r274609)
+++ stable/10/sys/kern/subr_prof.c Mon Nov 17 01:01:45 2014 (r274610)
@@ -533,6 +533,7 @@ out:
if (--p->p_profthreads == 0) {
if (p->p_flag & P_STOPPROF) {
wakeup(&p->p_profthreads);
+ p->p_flag &= ~P_STOPPROF;
stop = 0;
}
}
More information about the svn-src-all
mailing list