cvs commit: src/sys/kern sched_ule.c (fwd)
Jeff Roberson
jroberson at chesapeake.net
Wed Jul 18 01:28:33 UTC 2007
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@ amd64, x86, UP, SMP.
Approved by: re
Revision Changes Path
1.200 +917 -549 src/sys/kern/sched_ule.c
More information about the freebsd-current
mailing list