Author: attilio
Date: Sun Jan 24 18:16:38 2010
New Revision: 202940
URL: http://svn.freebsd.org/changeset/base/202940

Log:
  Split out an invariant in order to better check that newtd, when
  provided, must be on a runqueue.
  
  Tested by:    Giovanni Trematerra
                <giovanni dot trematerra at gmail dot com>
  MFC:          2 weeks
  X-MFC:                r202889

Modified:
  head/sys/kern/sched_4bsd.c

Modified: head/sys/kern/sched_4bsd.c
==============================================================================
--- head/sys/kern/sched_4bsd.c  Sun Jan 24 18:05:38 2010        (r202939)
+++ head/sys/kern/sched_4bsd.c  Sun Jan 24 18:16:38 2010        (r202940)
@@ -943,8 +943,10 @@ sched_switch(struct thread *td, struct t
        if ((td->td_flags & TDF_NOLOAD) == 0)
                sched_load_rem();
 
-       if (newtd)
+       if (newtd) {
+               MPASS(newtd->td_lock == &sched_lock);
                newtd->td_flags |= (td->td_flags & TDF_NEEDRESCHED);
+       }
 
        td->td_lastcpu = td->td_oncpu;
        td->td_flags &= ~TDF_NEEDRESCHED;
@@ -987,8 +989,8 @@ sched_switch(struct thread *td, struct t
                        sched_load_add();
        } else {
                newtd = choosethread();
+               MPASS(newtd->td_lock == &sched_lock);
        }
-       MPASS(newtd->td_lock == &sched_lock);
 
        if (td != newtd) {
 #ifdef HWPMC_HOOKS
_______________________________________________
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