Re: [PATCH] futex: Avoid hash-bucket locking for mismatched waits

Usama Arif <[email protected]>
Newsgroups org.kernel.vger.linux-kselftest,org.kernel.vger.linux-kernel
Message-ID <[email protected]>

On 08/08/2026 10:19, Thomas Gleixner wrote:
> On Fri, Jul 31 2026 at 12:26, Usama Arif wrote:
>>  
>> +	/*
>> +	 * A mismatch here refuses the wait without locating the hash bucket;
>> +	 * a match is rechecked under the lock below before queueing.
>> +	 *
>> +	 * get_futex_key() runs get_user_pages_fast() only for shared futexes,
>> +	 * so their page is resident and the non-faulting read suffices, with
>> +	 * the locked path recovering if it does not.  A private futex may
> 
> That's a fairy tale:
> 
>        get_futex_key()
>           ...
>           // shared
>           get_user_pages_fast();        // gets a page reference
>           ...
>           folio = page_folio(page);
>           ...
> 
>        out:
>           folio_put(folio);	       // drops the page reference
>           
> Thanks,
> 
>         tglx

I will fix the comment if the discussion in the other thread hopefully
works out and there is a v2. folio_put() does not immediately evict the
page; however as you point out it removes the guarantee that it stays
available.

get_futex_key() has just resolved the shared page, so a non-faulting
read is "very likely" to succeed. If it doesn't, we get -EFAULT and will
then reach the existing locked check and continues to do what is done
without the patch.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.