svn commit: r289661 - head/sys/kern
John Baldwin
jhb at freebsd.org
Tue Oct 20 22:42:49 UTC 2015
On Tuesday, October 20, 2015 08:29:21 PM Konstantin Belousov wrote:
> Author: kib
> Date: Tue Oct 20 20:29:21 2015
> New Revision: 289661
> URL: https://svnweb.freebsd.org/changeset/base/289661
>
> Log:
> Mark struct thread zone as type-stable.
>
> When establishing the locking state for several lock types (including
> blockable mutexes and sx) failed, locking primitives try to spin while
> the owner thread is running. The spinning loop performs the test for
> running condition by dereferencing the owner->td_state field of the
> owner thread. If the owner thread exited while spinner was put off
> the processor, it is harmless to access reused struct thread owner,
> since in some near future the current processor would notice the owner
> change and make appropriate progress. But it could be that the page
> which carried the freed struct thread was unmapped, then we fault
> (this cannot happen on amd64).
>
> For now, disallowing free of the struct thread seems to be good
> enough, and tests which create a lot of threads once, did not
> demonstrated regressions.
>
> Reviewed by: jhb, pho
> Reported and tested by: pho
> Sponsored by: The FreeBSD Foundation
> MFC after: 2 weeks
> Differential revision: https://reviews.freebsd.org/D3908
PR: 65448
--
John Baldwin
More information about the svn-src-all
mailing list