scheduler (sched_4bsd) questions

Julian Elischer julian at elischer.org
Sun Oct 3 14:39:33 PDT 2004


Stephan Uphoff wrote:
  you didn't answer this question..

> 
> 
>>Where is the critical_enter that matches the extra critical_exit()
>>you put in sched_switch()? I haven' been able to yet figure out how
>>you don't get a double exit. but I've only looked for a few minutes.
> 

==== //depot/projects/nsched/sys/kern/sched_4bsd.c#58 - 
/home/julian/p4/nsched/sys/kern/sched_4bsd.c ====
@@ -844,6 +844,8 @@
                         if (newtd == NULL || newtd->td_ksegrp != td->td_ksegrp)
                                 slot_fill(td->td_ksegrp);
                 }
+               critical_exit();
+               td->td_pflags &= ~TDP_OWEPREEMPT;
         }
         if (newtd) {
                 /*


where is the matching critical_enter()?



More information about the freebsd-arch mailing list