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;
> }