cvs commit: src/sys/kern sched_ule.c

Jeff Roberson jeff at FreeBSD.org
Fri Nov 14 23:32:10 PST 2003


jeff        2003/11/14 23:32:08 PST

  FreeBSD src repository

  Modified files:
    sys/kern             sched_ule.c 
  Log:
   - Introduce kseq_runq_{add,rem}() which are used to insert and remove
     kses from the run queues.  Also, on SMP, we track the transferable
     count here.  Threads are transferable only as long as they are on the
     run queue.
   - Previously, we adjusted our load balancing based on the transferable count
     minus the number of actual cpus.  This was done to account for the threads
     which were likely to be running.  All of this logic is simpler now that
     transferable accounts for only those threads which can actually be taken.
     Updated various places in sched_add() and kseq_balance() to account for
     this.
   - Rename kseq_{add,rem} to kseq_load_{add,rem} to reflect what they're
     really doing.  The load is accounted for seperately from the runq because
     the load is accounted for even as the thread is running.
   - Fix a bug in sched_class() where we weren't properly using the PRI_BASE()
     version of the kg_pri_class.
   - Add a large comment that describes the impact of a seemingly simple
     conditional in sched_add().
   - Also in sched_add() check the transferable count and KSE_CAN_MIGRATE()
     prior to checking kseq_idle.  This reduces the frequency of access for
     kseq_idle which is a shared resource.
  
  Revision  Changes    Path
  1.81      +83 -61    src/sys/kern/sched_ule.c


More information about the cvs-src mailing list