Re: [RFC 1/1] rwsem: Shrink rwsem by one pointer
From: Peter Zijlstra
Date: Wed Feb 18 2026 - 17:26:58 EST
On Wed, Feb 18, 2026 at 09:00:14PM +0000, Matthew Wilcox wrote:
> Here's all the changes I made, and I'll post a rolled-up version
> next.
That all seems reasonable.
One small nit:
> + if (list_empty(&waiter->list)) {
> + sem->first_waiter = NULL;
> + return true;
> }
>
> + if (sem->first_waiter == waiter)
> + sem->first_waiter = list_first_entry(&waiter->list,
> + struct rwsem_waiter, list);
Since that's multiple lines, could you wrap in {}, also I tend to prefer
cino=(0:0 style wrapping. That is, something like so:
if (sem->first_waiter == waiter) {
sem->first_waiter = list_first_entry(&waiter->list,
struct rwsem_waiter, list);
}
> + list_del(&waiter->list);
> +
> return false;
> }