DragonFly BSD
DragonFly commits List (threaded) for 2012-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel - usched_dfly revamp

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 21 Sep 2012 16:13:09 -0700 (PDT)

commit de4d4cb09ddef3daf05c2758cd2962bc7349e746
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Fri Sep 21 16:09:25 2012 -0700

    kernel - usched_dfly revamp
    * NOTE: This introduces a few regressions at high loads.  They've been
      identified and will be fixed in another iteration.
      We've identified an issue with weight2.  When weight2 successfully
      schedules a process pair on the same cpu it can lead to inefficiencies
      elsewhere in the scheduler related to user-mode and kernel-mode
      priority switching.  In this situation testing pgbench/postgres pairs
      (e.g. -j $ncpus -c $ncpus) we sometimes see some serious regressions on
      multi-socket machines, and other times see remarkably high performance.
    * Fix a reported panic.
    * Revamp the weights and algorithms signficantly.  Fix algorithmic errors
      and improve the accuracy of weight3.  Add weight4 which basically tells
      the scheduler to try harder to find a free cpu to schedule the lwp on
      when the current cpu is busy doing something else.

Summary of changes:
 sys/kern/kern_clock.c   |    5 +-
 sys/kern/kern_synch.c   |   20 +-
 sys/kern/kern_usched.c  |   18 ++
 sys/kern/lwkt_thread.c  |    6 +
 sys/kern/usched_bsd4.c  |   17 +-
 sys/kern/usched_dfly.c  |  595 +++++++++++++++++++++++++----------------------
 sys/kern/usched_dummy.c |   19 +-
 sys/sys/globaldata.h    |    5 +-
 sys/sys/proc.h          |    1 +
 sys/sys/usched.h        |    1 +
 10 files changed, 374 insertions(+), 313 deletions(-)


DragonFly BSD source repository

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]