Re: cvs commit: src/sys/kern sched_ule.c (fwd)

From: Max Laier <max_at_love2party.net>
Date: Wed, 18 Jul 2007 21:55:56 +0200
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_at_ 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

Received on Wed Jul 18 2007 - 17:53:35 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:14 UTC