Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Jan 2007 08:56:25 +0000 (UTC)
From:      Jeff Roberson <jeff@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/kern sched_ule.c
Message-ID:  <200701040856.l048uPPF027359@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
jeff        2007-01-04 08:56:25 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             sched_ule.c 
  Log:
  ULE 2.0:
   - Remove the double queue mechanism for timeshare threads.  It was slow
     due to excess cache lines in play, caused suboptimal scheduling behavior
     with niced and other non-interactive processes, complicated priority
     lending, etc.
   - Use a circular queue with a floating starting index for timeshare threads.
     Enforces fairness by moving the insertion point closer to threads with
     worse priorities over time.
   - Give interactive timeshare threads real-time user-space priorities and
     place them on the realtime/ithd queue.
   - Select non-interactive timeshare thread priorities based on their cpu
     utilization over the last 10 seconds combined with the nice value.  This
     gives us more sane priorities and behavior in a loaded system as
     compared to the old method of using the interactivity score.  The
     interactive score quickly hit a ceiling if threads were non-interactive
     and penalized new hog threads.
   - Use one slice size for all threads.  The slice is not currently
     dynamically set to adjust scheduling behavior of different threads.
   - Add some new sysctls for scheduling parameters.
  
  Bug fixes/Clean up:
   - Fix zeroing of td_sched after initialization in sched_fork_thread() caused
     by recent ksegrp removal.
   - Fix KSE interactivity issues related to frequent forking and exiting of
     kse threads.  We simply disable the penalty for thread creation and exit
     for kse threads.
   - Cleanup the cpu estimator by using tickincr here as well.  Keep ticks and
     ltick/ftick in the same frequency.  Previously ticks were stathz and
     others were hz.
   - Lots of new and updated comments.
   - Many many others.
  
  Tested on:      up x86/amd64, 8way amd64.
  
  Revision  Changes    Path
  1.172     +332 -412  src/sys/kern/sched_ule.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200701040856.l048uPPF027359>