Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Jul 2007 18:31:37 -0700 (PDT)
From:      Jeff Roberson <jroberson@chesapeake.net>
To:        current@freebsd.org
Subject:   cvs commit: src/sys/kern sched_ule.c (fwd)
Message-ID:  <20070717182819.L92541@10.0.0.1>

next in thread | raw e-mail | index | archive | help
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@FreeBSD.org>
To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@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@ amd64, x86, UP, SMP.
   Approved by:    re

   Revision  Changes    Path
   1.200     +917 -549  src/sys/kern/sched_ule.c



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