cvs commit: src/sys/kern sched_ule.c

From: Jeff Roberson <>
Date: Sun, 26 Dec 2004 22:56:08 +0000 (UTC)
jeff        2004-12-26 22:56:08 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             sched_ule.c 
   - Fix a long standing problem where an ithread would not honor sched_pin().
   - Remove the sched_add wrapper that used sched_add_internal() as a backend.
     Its only purpose was to interpret one flag and turn it into an int.  Do
     the right thing and interpret the flag in sched_add() instead.
   - Pass the flag argument to sched_add() to kseq_runq_add() so that we can
     get the SRQ_PREEMPT optimization too.
   - Add a KEF_INTERNAL flag.  If KEF_INTERNAL is set we don't adjust the SLOT
     counts, otherwise the slot counts are adjusted as soon as we enter
     sched_add() or sched_rem() rather than when the thread is actually placed
     on the run queue.  This greatly simplifies the handling of slots.
   - Remove the explicit prevention of migration for ithreads on non-x86
     platforms.  This was never shown to have any real benefit.
   - Remove the unused class argument to KSE_CAN_MIGRATE().
   - Add ktr points for thread migration events.
   - Fix a long standing bug on platforms which don't initialize the cpu
     topology.  The ksg_maxid variable was never correctly set on these
     platforms which caused the long term load balancer to never inspect
     more than the first group or processor.
   - Fix another bug which prevented the long term load balancer from working
     properly.  If stathz != hz we can't expect sched_clock() to be called
     on the exact tick count that we're anticipating.
   - Rearrange sched_switch() a bit to reduce indentation levels.
  Revision  Changes    Path
  1.142     +140 -127  src/sys/kern/sched_ule.c
Received on Sun Dec 26 2004 - 22:56:09 UTC