Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Nov 2016 17:10:09 +0100
From:      Hans Petter Selasky <hps@selasky.org>
To:        John Baldwin <jhb@freebsd.org>
Cc:        Oleksandr Tymoshenko <gonzo@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r308424 - head/sys/arm/broadcom/bcm2835
Message-ID:  <5c170b6b-1189-4712-ffdd-653cc6b8c59e@selasky.org>
In-Reply-To: <3214848.geWV8qu7rM@ralph.baldwin.cx>
References:  <201611071738.uA7HceYu045944@repo.freebsd.org> <680D84F2-65BF-48DD-8D11-311B1F65A634@freebsd.org> <c7cd871d-9007-6de4-7063-2680e259713f@selasky.org> <3214848.geWV8qu7rM@ralph.baldwin.cx>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

On 11/09/16 16:02, John Baldwin wrote:
 > On the other hand, doing the wakeup outside of the lock
> avoids preempting during the wakeup only to immediately block on the lock and
> switch back to the thread that did the wakeup.

This can be predicted and avoided by the turnstiles iff cv_signal() is 
used under a lock. Else not.

Won't doing the wakeup outside the lock cause double preemtion? First at 
mtx_unlock() and then inside cv_signal()/cv_broadcast().

--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5c170b6b-1189-4712-ffdd-653cc6b8c59e>