cvs commit: src/sys/kern sched_ule.c (fwd)
Max Laier
max at love2party.net
Wed Jul 18 19:53:35 UTC 2007
On Wednesday 18 July 2007, Jeff Roberson wrote:
> 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.
3) nice(1) trouble?
I wrote a quick script to fork off a couple of "yes > /dev/null" to stress
test and it works really really fine. However, if I nice down the script
it panics with
| spin lock 0xffffffff806e5380 (sched lock 2) held by 0xffffff0001227000
| (tid 100000) too long
| panic: spin lock held too long
This is almost 100% repeatable after 30-60 seconds, even with only 4 yes
instances (where 4 is the # of CPUs).
> 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
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to
> "freebsd-current-unsubscribe at freebsd.org"
--
/"\ Best regards, | mlaier at freebsd.org
\ / Max Laier | ICQ #67774661
X http://pf4freebsd.love2party.net/ | mlaier at EFnet
/ \ ASCII Ribbon Campaign | Against HTML Mail and News
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: This is a digitally signed message part.
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20070718/912a43b4/attachment.pgp
More information about the freebsd-current
mailing list