| Deutsch English Français Italiano |
|
<vrtkmt$2paav$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> Newsgroups: comp.arch Subject: Re: MSI interrupts Date: Tue, 25 Mar 2025 00:07:09 -0700 Organization: A noiseless patient Spider Lines: 20 Message-ID: <vrtkmt$2paav$1@dont-email.me> References: <vqto79$335c6$1@dont-email.me> <kVgEP.1277108$_N6e.605199@fx17.iad> <vrsea2$siu$1@reader1.panix.com> <a86295425dfb043a1b44e550a1c05659@www.novabbs.org> <vrsqrd$ns1$1@reader1.panix.com> <e0080df32c6f88ebbd4c8828f98f76a9@www.novabbs.org> <jwvmsd91yxy.fsf-monnier+comp.arch@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Tue, 25 Mar 2025 08:07:11 +0100 (CET) Injection-Info: dont-email.me; posting-host="5e2174216670af0d17933d91728d06f2"; logging-data="2926943"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19lb06P2bV9n5fxlwlchV20cabmd5TwAMg=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:SBXGkFxMX77jF4dnvAlj2KQxKNI= In-Reply-To: <jwvmsd91yxy.fsf-monnier+comp.arch@gnu.org> Content-Language: en-US On 3/24/2025 10:26 PM, Stefan Monnier wrote: >> It means that if a thread owning a lock is interrupted, that >> thread gives the lock back--so there is no priority inversion >> and no lock-starvation. Associated with the give back, and the >> IP of the interrupted thread no longer points inside the >> critical section. > > I think the discussion is a bit confusing because we have 2 different > notions of "critical section" at play, here: Yup. User space mutex impls vs kernel space ones (sync algos, mutexes, ect...), that can be different in the way they are implemented. Using an XCHG instruction can give you a spinlock, mutex, ect... CMPXCHG and XCHG are very fun, never forget about XADD. In user space we only want to resort to the kernel to wait when we have to... We try to minimize that as the slow path, the last resort. The fast path can get around calling into the kernel. Spinning in user space on a contended mutex is okay as long as its rather limited. Then it can be called an adaptive mutex. [...]