Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Sep 2010 15:17:05 -0700
From:      mdf@FreeBSD.org
To:        John Baldwin <jhb@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r212115 - head/sys/kern
Message-ID:  <AANLkTimGNby3aTNjcQhr%2Bq0ZVFXMw_hRtxNBcSUu4=hz@mail.gmail.com>
In-Reply-To: <201009011731.12499.jhb@freebsd.org>
References:  <201009012032.o81KWmu5080032@svn.freebsd.org> <201009011731.12499.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Sep 1, 2010 at 2:31 PM, John Baldwin <jhb@freebsd.org> wrote:
> On Wednesday, September 01, 2010 4:32:48 pm Matthew D Fleming wrote:
>> Author: mdf
>> Date: Wed Sep =A01 20:32:47 2010
>> New Revision: 212115
>> URL: http://svn.freebsd.org/changeset/base/212115
>>
>> Log:
>> =A0 Fix a bug with sched_affinity() where it checks td_pinned of another
>> =A0 thread in a racy manner, which can lead to attempting to migrate a
>> =A0 thread that is pinned to a CPU. =A0Instead, have sched_switch() dete=
rmine
>> =A0 which CPU a thread should run on if the current one is not allowed.
>>
>> =A0 KASSERT in sched_bind() that the thread is not yet pinned to a CPU.
>>
>> =A0 KASSERT in sched_switch() that only migratable threads or those movi=
ng
>> =A0 due to a sched_bind() are changing CPUs.
>>
>> =A0 sched_affinity code came from jhb@.
>>
>> =A0 MFC after: =A02 weeks
>
> Cool, I guess this fixed it in your tests then?

Yes, the stress case I pointed out in the earlier thread ran for quite
a few minutes before I killed it.  Previously it would crash (with the
added assert) in a few seconds.

Thanks,
matthew



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTimGNby3aTNjcQhr%2Bq0ZVFXMw_hRtxNBcSUu4=hz>