Re: [RFC PATCH 3/3] treewide: pipe: Convert all references to pipe->{head,tail,max_usage,ring_size} to unsigned short
From: Oleg Nesterov
Date: Thu Mar 06 2025 - 07:43:01 EST
On 03/06, Oleg Nesterov wrote:
>
> On 03/06, K Prateek Nayak wrote:
> >
> > @@ -272,9 +272,9 @@ pipe_read(struct kiocb *iocb, struct iov_iter *to)
> > */
> > for (;;) {
> > /* Read ->head with a barrier vs post_one_notification() */
> > - unsigned int head = smp_load_acquire(&pipe->head);
> > - unsigned int tail = pipe->tail;
> > - unsigned int mask = pipe->ring_size - 1;
> > + unsigned short head = smp_load_acquire(&pipe->head);
> > + unsigned short tail = pipe->tail;
> > + unsigned short mask = pipe->ring_size - 1;
>
> I dunno... but if we do this, perhaps we should
> s/unsigned int/pipe_index_t instead?
>
> At least this would be more grep friendly.
in any case, I think another cleanup before this change makes sense...
pipe->ring_size is overused. pipe_read(), pipe_write() and much more
users do not need "unsigned int mask", they can use pipe_buf(buf, slot)
instead.
Oleg.