PERFORCE change 62704 for review

Julian Elischer julian at FreeBSD.org
Tue Oct 5 14:40:15 PDT 2004


http://perforce.freebsd.org/chv.cgi?CH=62704

Change 62704 by julian at julian_ref on 2004/10/05 21:39:28

	 IFC at 62701 Loop back changes

Affected files ...

.. //depot/projects/nsched/sys/kern/kern_switch.c#38 integrate
.. //depot/projects/nsched/sys/kern/sched_4bsd.c#60 integrate
.. //depot/projects/nsched/sys/kern/sched_ule.c#38 integrate

Differences ...

==== //depot/projects/nsched/sys/kern/kern_switch.c#38 (text+ko) ====

@@ -86,7 +86,7 @@
 ***/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_switch.c,v 1.95 2004/09/19 18:34:17 das Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_switch.c,v 1.96 2004/10/05 21:10:43 julian Exp $");
 
 #include "opt_sched.h"
 

==== //depot/projects/nsched/sys/kern/sched_4bsd.c#60 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.65 2004/09/16 07:12:59 julian Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.66 2004/10/05 21:10:44 julian Exp $");
 
 #define kse td_sched
 

==== //depot/projects/nsched/sys/kern/sched_ule.c#38 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.130 2004/09/16 07:12:59 julian Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.132 2004/10/05 21:26:27 julian Exp $");
 
 #include <opt_sched.h>
 
@@ -186,6 +186,17 @@
 	    ("slots out of whack"));*/ 					\
 } while (0)
 
+#define SLOT_USE(kg)							\
+do {									\
+	kg->kg_avail_opennings--; 					\
+	CTR3(KTR_RUNQ, "kg %p(%d) Slot used (->%d)",			\
+	kg,								\
+	kg->kg_concurrency,						\
+	 kg->kg_avail_opennings);					\
+	/*KASSERT((kg->kg_avail_opennings >= 0),			\
+	    ("slots out of whack"));*/ 					\
+} while (0)
+
 
 static struct kse kse0;
 static struct kg_sched kg_sched0;
@@ -1301,8 +1312,8 @@
 		 * then account for it as if it had been added to the
 		 * run queue and then chosen.
 		 */
+		newtd->td_kse->ke_flags |= KEF_DIDRUN;
 		SLOT_USE(newtd->td_ksegrp);
-		newtd->td_kse->ke_flags |= KEF_DIDRUN;
        		TD_SET_RUNNING(newtd);
 		kseq_load_add(KSEQ_SELF(), newtd->td_kse);
 	} else {
@@ -1827,7 +1838,7 @@
 	    ("sched_rem: KSE not on run queue"));
 
 	ke->ke_state = KES_THREAD;
-	td->td_ksegrp->kg_avail_opennings++;
+	SLOT_RELEASE(td->td_ksegrp);
 	ke->ke_ksegrp->kg_runq_threads--;
 	kseq = KSEQ_CPU(ke->ke_cpu);
 	kseq_runq_rem(kseq, ke);


More information about the p4-projects mailing list