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>