Skip site navigation (1)Skip section navigation (2)
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>