ULE/yielding patch for testing.
Yuri Pankov
yuri.pankov at gmail.com
Tue Oct 2 21:37:59 PDT 2007
On Tue, Oct 02, 2007 at 07:55:02PM -0700, Jeff Roberson wrote:
> On Wed, 3 Oct 2007, Yuri Pankov wrote:
>
>> On Wed, Oct 03, 2007 at 04:50:09AM +0400, Yuri Pankov wrote:
>>> On Tue, Oct 02, 2007 at 04:53:33PM -0700, Jeff Roberson wrote:
>>>> Enclosed is a patch that does two things:
>>>>
>>>> 1) Reduces UP context switch time by over 10% making it faster than
>>>> 4BSD
>>>> on UP. On SMP it's hard to compare since ULE can do as many as 30x as
>>>> many
>>>> switches per second on my 8way system.
>>>>
>>>> 2) Restores old sched_yield() behavior from 6.x. This was changed in
>>>> -current unintentionally I think.
>>>>
>>>> I'd appreciate any extra testing. The ULE context switch time
>>>> improvements
>>>> required some changes to the frequency that we recalculate priorities.
>>>> I'm
>>>> mostly interested in hearing whether this causes any regression in
>>>> normal
>>>> workloads.
>>>>
>>>> Those of you still using 4BSD can also verify that the yield changes
>>>> don't
>>>> cause any problems there.
>>>>
>>>> Thanks,
>>>> Jeff
>>>
>>> Jeff,
>>>
>>> Patch applied cleanly, though with new kernel I got a panic just after
>>> boot - on xdm startup, I guess (crashdump wasn't saved), a lot of the
>>> same messages
>>> (copied by hand):
>>>
>>> cpuid = 0
>>> panic: _mtx_lock_sleep: recursed on non-recursive mutex
>>> audit_mtx@/usr/src/sys/security/audit_worker.c:518
>>>
>>> and after few seconds system just hangs.
>>>
>>> Any hints?
>>>
>>> --
>>> Yuri Pankov <yuri.pankov at gmail.com>
>>
>> Sorry for being so verbose...
>
> Did you 'make depend' as well? If you patch -R < yield.diff does this
> kernel work? I'm not sure how my changes could cause this type of bug.
>
> Thanks,
> Jeff
>
I'm rebuilt kernel with and without your patch (with clean /usr/obj/ every time)
using `make kernel KERNCONF=DARKLIGHT` just to be sure.
Without your patch, system seems to run stable. With it - I get hard hangs upon
just loading X or upon xdm startup or after xdm login, every time the same. No
messages now, just hangs. Nothing suspicious in /var/log/messages, etc.
Xorg 7.3 with xf86-video-nv, all ports built yesterday (it was fresh install).
Anything that I should look at? (as it can be just pilot error).
TIA.
>>
>> It's UP amd64 with SCHED_ULE
>>
>> kernel config:
>>
>> include GENERIC
>> ident DARKLIGHT
>>
>> nooptions SCHED_4BSD
>> options SCHED_ULE
>>
>> --
>> Yuri Pankov <yuri.pankov at gmail.com>
>>
--
Yuri Pankov <yuri.pankov at gmail.com>
More information about the freebsd-current
mailing list