Date: Wed, 18 Jul 2007 21:55:56 +0200 From: Max Laier <max@love2party.net> To: freebsd-current@freebsd.org Cc: Jeff Roberson <jroberson@chesapeake.net> Subject: Re: cvs commit: src/sys/kern sched_ule.c (fwd) Message-ID: <200707182156.03769.max@love2party.net> In-Reply-To: <20070717182819.L92541@10.0.0.1> References: <20070717182819.L92541@10.0.0.1>
next in thread | previous in thread | raw e-mail | index | archive | help
--nextPart17172390.Hft8vRoxWe Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline 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= =20 test and it works really really fine. However, if I nice down the script=20 it panics with | spin lock 0xffffffff806e5380 (sched lock 2) held by 0xffffff0001227000 | (tid 100000) too long=20 | panic: spin lock held too long This is almost 100% repeatable after 30-60 seconds, even with only 4 yes=20 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@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.=20 > 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" =2D-=20 /"\ Best regards, | mlaier@freebsd.org \ / Max Laier | ICQ #67774661 X http://pf4freebsd.love2party.net/ | mlaier@EFnet / \ ASCII Ribbon Campaign | Against HTML Mail and News --nextPart17172390.Hft8vRoxWe Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4 (FreeBSD) iD8DBQBGnnBTXyyEoT62BG0RAsaSAJ95EgSyE6wJuBeSCg4Drt3zjdEAbQCfSAmF HKnI6TZFMUcGJMEFqJ3aWJc= =KWc8 -----END PGP SIGNATURE----- --nextPart17172390.Hft8vRoxWe--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200707182156.03769.max>