Author: jhb
Date: Thu Jun  3 16:02:11 2010
New Revision: 208787
URL: http://svn.freebsd.org/changeset/base/208787

Log:
  Assert that the thread lock is held in sched_pctcpu() instead of
  recursively acquiring it.  All of the current callers already hold the
  lock.
  
  MFC after:    1 month

Modified:
  head/sys/kern/sched_4bsd.c
  head/sys/kern/sched_ule.c

Modified: head/sys/kern/sched_4bsd.c
==============================================================================
--- head/sys/kern/sched_4bsd.c  Thu Jun  3 14:51:29 2010        (r208786)
+++ head/sys/kern/sched_4bsd.c  Thu Jun  3 16:02:11 2010        (r208787)
@@ -1523,6 +1523,7 @@ sched_pctcpu(struct thread *td)
 {
        struct td_sched *ts;
 
+       THREAD_LOCK_ASSERT(td, MA_OWNED);
        ts = td->td_sched;
        return (ts->ts_pctcpu);
 }

Modified: head/sys/kern/sched_ule.c
==============================================================================
--- head/sys/kern/sched_ule.c   Thu Jun  3 14:51:29 2010        (r208786)
+++ head/sys/kern/sched_ule.c   Thu Jun  3 16:02:11 2010        (r208787)
@@ -2367,7 +2367,7 @@ sched_pctcpu(struct thread *td)
        if (ts == NULL)
                return (0);
 
-       thread_lock(td);
+       THREAD_LOCK_ASSERT(td, MA_OWNED);
        if (ts->ts_ticks) {
                int rtick;
 
@@ -2376,7 +2376,6 @@ sched_pctcpu(struct thread *td)
                rtick = min(SCHED_TICK_HZ(ts) / SCHED_TICK_SECS, hz);
                pctcpu = (FSCALE * ((FSCALE * rtick)/hz)) >> FSHIFT;
        }
-       thread_unlock(td);
 
        return (pctcpu);
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to