Date: Wed, 18 Jul 2007 13:35:41 -0700 (PDT) From: Jeff Roberson <jroberson@chesapeake.net> To: Max Laier <max@love2party.net> Cc: freebsd-current@freebsd.org Subject: Re: cvs commit: src/sys/kern sched_ule.c (fwd) Message-ID: <20070718133508.Q561@10.0.0.1> In-Reply-To: <200707182156.03769.max@love2party.net> References: <20070717182819.L92541@10.0.0.1> <200707182156.03769.max@love2party.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 18 Jul 2007, Max Laier wrote: > 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). Hey Max, Thanks for the bug report. I'm not able to reproduce this myself. Can you enable some debugging and get me a stack trace? Thanks, Jeff > >> 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 >> _______________________________________________ >> freebsd-current@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-current >> To unsubscribe, send any mail to >> "freebsd-current-unsubscribe@freebsd.org" > > > > -- > /"\ Best regards, | mlaier@freebsd.org > \ / Max Laier | ICQ #67774661 > X http://pf4freebsd.love2party.net/ | mlaier@EFnet > / \ ASCII Ribbon Campaign | Against HTML Mail and News >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070718133508.Q561>