Re: [PATCH 04/11] General notification queue with user mmap()'able ring buffer [ver #7]

From: David Howells
Date: Tue Sep 03 2019 - 12:06:46 EST


Hillf Danton <hdanton@xxxxxxxx> wrote:

> > + smp_store_release(&buf->meta.head, head);
>
> Add a line of comment for the paring smp_load_acquire().
> I did not find it in 04/11.

You won't find smp_load_acquire() - it's not in the kernel, though if you look
in the sample, you'll find the corresponding barrier in userspace. Note that
there's a further implicit barrier you don't see.

I've added the comments:

/* Barrier against userspace, ordering data read before tail read */
ring_tail = READ_ONCE(buf->meta.tail);

and:

/* Barrier against userspace, ordering head update after data write. */
smp_store_release(&buf->meta.head, head);

David