Deleted Added
full compact
28c28
< __FBSDID("$FreeBSD: head/sys/kern/sched_ule.c 121872 2003-11-02 04:25:59Z jeff $");
---
> __FBSDID("$FreeBSD: head/sys/kern/sched_ule.c 121896 2003-11-02 10:56:48Z jeff $");
212c212
< int ksq_loads[KSEQ_NCLASS]; /* Load for each class */
---
> int ksq_load_timeshare; /* Load for timeshare. */
216a217
> int ksq_load_transferable; /* kses that may be migrated. */
264a266
> #define KSE_CAN_MIGRATE(ke, class) ((class) != PRI_ITHD)
277,280c279,282
< printf("\tload ITHD: %d\n", kseq->ksq_loads[PRI_ITHD]);
< printf("\tload REALTIME: %d\n", kseq->ksq_loads[PRI_REALTIME]);
< printf("\tload TIMESHARE: %d\n", kseq->ksq_loads[PRI_TIMESHARE]);
< printf("\tload IDLE: %d\n", kseq->ksq_loads[PRI_IDLE]);
---
> printf("\tload REALTIME: %d\n", kseq->ksq_load_timeshare);
> #ifdef SMP
> printf("\tload transferable: %d\n", kseq->ksq_load_transferable);
> #endif
291a294
> int class;
293c296,303
< kseq->ksq_loads[PRI_BASE(ke->ke_ksegrp->kg_pri_class)]++;
---
> class = PRI_BASE(ke->ke_ksegrp->kg_pri_class);
> if (class == PRI_TIMESHARE)
> kseq->ksq_load_timeshare++;
> #ifdef SMP
> if (KSE_CAN_MIGRATE(ke, class))
> kseq->ksq_load_transferable++;
> kseq->ksq_rslices += ke->ke_slice;
> #endif
301,303d310
< #ifdef SMP
< kseq->ksq_rslices += ke->ke_slice;
< #endif
308a316
> int class;
310c318,325
< kseq->ksq_loads[PRI_BASE(ke->ke_ksegrp->kg_pri_class)]--;
---
> class = PRI_BASE(ke->ke_ksegrp->kg_pri_class);
> if (class == PRI_TIMESHARE)
> kseq->ksq_load_timeshare--;
> #ifdef SMP
> if (KSE_CAN_MIGRATE(ke, class))
> kseq->ksq_load_transferable--;
> kseq->ksq_rslices -= ke->ke_slice;
> #endif
315,317d329
< #ifdef SMP
< kseq->ksq_rslices -= ke->ke_slice;
< #endif
326c338
< if (nice < kseq->ksq_nicemin || kseq->ksq_loads[PRI_TIMESHARE] == 1)
---
> if (nice < kseq->ksq_nicemin || kseq->ksq_load_timeshare == 1)
348c360
< kseq->ksq_loads[PRI_TIMESHARE] == 0)
---
> kseq->ksq_load_timeshare == 0)
412,413c424
< high_load = kseq->ksq_loads[PRI_IDLE] + kseq->ksq_loads[PRI_TIMESHARE] +
< kseq->ksq_loads[PRI_REALTIME];
---
> high_load = kseq->ksq_load_transferable;
463,464c474
< if ((kseq->ksq_loads[PRI_IDLE] + kseq->ksq_loads[PRI_TIMESHARE] +
< kseq->ksq_loads[PRI_REALTIME]) > kseq->ksq_cpus)
---
> if (kseq->ksq_load_transferable > kseq->ksq_cpus)
575,576c585,586
< if (PRI_BASE(ke->ke_ksegrp->kg_pri_class) !=
< PRI_ITHD)
---
> if (KSE_CAN_MIGRATE(ke,
> PRI_BASE(ke->ke_ksegrp->kg_pri_class)))
647d656
<
650,654d658
<
< kseq->ksq_loads[PRI_ITHD] = 0;
< kseq->ksq_loads[PRI_REALTIME] = 0;
< kseq->ksq_loads[PRI_TIMESHARE] = 0;
< kseq->ksq_loads[PRI_IDLE] = 0;
655a660
> kseq->ksq_load_timeshare = 0;
656a662
> kseq->ksq_load_transferable = 0;
776c782
< if (kseq->ksq_loads[PRI_TIMESHARE] == 0 ||
---
> if (kseq->ksq_load_timeshare == 0 ||
791c797
< kseq->ksq_loads[PRI_TIMESHARE], SCHED_INTERACTIVE(kg));
---
> kseq->ksq_load_timeshare, SCHED_INTERACTIVE(kg));
1127a1134,1135
> int nclass;
> int oclass;
1132a1141,1142
> nclass = PRI_BASE(class);
> oclass = PRI_BASE(kg->kg_pri_class);
1139,1140c1149,1158
< kseq->ksq_loads[PRI_BASE(kg->kg_pri_class)]--;
< kseq->ksq_loads[PRI_BASE(class)]++;
---
> #ifdef SMP
> if (KSE_CAN_MIGRATE(ke, oclass))
> kseq->ksq_load_transferable--;
> if (KSE_CAN_MIGRATE(ke, nclass))
> kseq->ksq_load_transferable++;
> #endif
> if (oclass == PRI_TIMESHARE)
> kseq->ksq_load_timeshare--;
> if (nclass == PRI_TIMESHARE)
> kseq->ksq_load_timeshare++;
1408,1409c1426
< (kseq->ksq_loads[PRI_IDLE] + kseq->ksq_loads[PRI_TIMESHARE] +
< kseq->ksq_loads[PRI_REALTIME]) >= kseq->ksq_cpus) {
---
> kseq->ksq_load_transferable >= kseq->ksq_cpus) {