cvs commit: src/sys/kern sched_ule.c

Jeff Roberson jeff at FreeBSD.org
Sat Nov 1 19:36:35 PST 2003


jeff        2003/11/01 19:36:34 PST

  FreeBSD src repository

  Modified files:
    sys/kern             sched_ule.c 
  Log:
   - Change sched_interact_update() to only accept slp+runtime values between
     0 and SCHED_SLP_RUN_MAX * 2.  This allows us to simplify the algorithm
     quite a bit.  Before, it dealt with arbitrary values which required us
     to do nasty integer division tricks that didn't quite work out correctly.
   - Chnage sched_wakeup() to detect conditions where the slp+runtime could
     exceed SCHED_SLP_RUN_MAX * 2.  This can happen if we go to sleep for
     longer than 6 seconds.  In this case, we'll just clear the runtime and
     set the sleep time to the max.
   - Define a new function, sched_interact_fork() which updates the slp+runtime
     of a newly forked thread.  We want to limit the amount of history retained
     from the parent so that we learn the child's behavior quickly.  We don't,
     however want to decay it to nothing.  Previously, we would simply divide
     each parameter by 100 whenever we forked.  After a few forks the values
     would reach 0 and tasks would not be considered interactive.
   - Add another KTR entry, cleanup some existing entries.
   - Remove a useless sched_interact_update() from sched_priority().  This is
     already done by the callers that require it.
  
  Revision  Changes    Path
  1.71      +56 -27    src/sys/kern/sched_ule.c


More information about the cvs-src mailing list