cvs commit: src/sys/kern sched_ule.c (fwd)

From: Jeff Roberson <jroberson_at_chesapeake.net>
Date: Tue, 17 Jul 2007 18:31:37 -0700 (PDT)
Thanks everyone for your help.  In summary it sounds like there are two 
issues.

1)  kqemu explicitly uses sched_lock.  I'll see if I can contact the 
author about fixing this.

2)  As much as a 6-7% slowdown on buildworld on dual core machines as 
compared to 4BSD.  I'm not sure if I'm going to do anything about this. 
Once you get to 4 or 8 cores and -j8 or more they even out with ULE having 
significantly less system time.  I don't know if I want to compromise that 
for slightly better dual core compile times.

This is in the tree for 7.0 now though.  I'm very excited to see this 
happen.

Thanks again,
Jeff

---------- Forwarded message ----------
Date: Tue, 17 Jul 2007 22:53:24 +0000 (UTC)
From: Jeff Roberson <jeff_at_FreeBSD.org>
To: src-committers_at_FreeBSD.org, cvs-src_at_FreeBSD.org, cvs-all_at_FreeBSD.org
Subject: cvs commit: src/sys/kern sched_ule.c

jeff        2007-07-17 22:53:24 UTC

   FreeBSD src repository

   Modified files:
     sys/kern             sched_ule.c
   Log:
   ULE 3.0:  Fine grain scheduler locking and affinity improvements.  This has
   been in development for over 6 months as SCHED_SMP.
    - Implement one spin lock per thread-queue.  Threads assigned to a
      run-queue point to this lock via td_lock.
    - Improve the facility for assigning threads to CPUs now that sched_lock
      contention no longer dominates scheduling decisions on larger SMP
      machines.
    - Re-write idle time stealing in an attempt to make it less damaging to
      general performance.  This is still disabled by default. See
      kern.sched.steal_idle.
    - Call the long-term load balancer from a callout rather than sched_clock()
      so there are no locks held.  This is disabled by default.  See
      kern.sched.balance.
    - Parameterize many scheduling decisions via sysctls.  Try to document
      these via sysctl descriptions.
    - General structural and naming cleanups.
    - Document each function with comments.

   Tested by:      current_at_ amd64, x86, UP, SMP.
   Approved by:    re

   Revision  Changes    Path
   1.200     +917 -549  src/sys/kern/sched_ule.c
Received on Tue Jul 17 2007 - 23:28:33 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:14 UTC