Re: [RFC PATCH] introduce sys_membarrier(): process-wide memory barrier (v5)

Nicholas Miell
2010-01-13T19:53:33Z

On Wed, 2010-01-13 at 11:42 -0800, David Daney wrote:
> Mathieu Desnoyers wrote:
> > * Nicholas Miell (nmiell@comcast.net) wrote:
> >> On Wed, 2010-01-13 at 13:24 -0500, Mathieu Desnoyers wrote:
> >>> * Nicholas Miell (nmiell@comcast.net) wrote:
> >>>
> >>>> The whole point of compat and incompat flags is that it allows new
> >>>> applications to run on old kernels and either work or fail as
> >>>> appropriate, depending on whether the new features they're using must be
> >>>> implemented or can be silently ignored.
> >>> I see. Thanks for the explanation. Then the expedited flag should
> >>> clearly be part of the mandatory flags.
> >>>
> >>> Can you point me to other system calls that are doing this ?
> >>>
> >>> Thanks,
> >>>
> >>> Mathieu
> >> Not off the top of my head, but I did steal the idea from the ext2/3/4
> >> disk format.
> >
> > Sounds a bit over-engineered to me for system calls, but who knows if we
> > eventually have to extend sys_membarrier(). This involves that, right
> > now, I'd have to add a header to include/linux to define these flags.
> > Also, "int expedited" is a bit clearer, but less flexible, than "int
> > flags". Anyone else have comments about this ?
> >
>
> It doesn't bother me that you have to do extra work to add the flag
> definitions to a header file. :-)
>
> As I understand it, the proposal is to have the option to extend the ABI
> based on as yet undefined flag bits. This doesn't seem like a bad thing.
>
> The runtime overhead of testing a single bit vs. non-zero in the
> parameter shouldn't be an issue.
>

The recent introduction of accept4(), signalfd4(), eventfd2(),
epoll_create1(), dup3(), pipe2(), and inotify_init1() suggest that this
is the kind of thing you want to plan for, because you're probably going
to end up doing it anyway.

--
Nicholas Miell <nmiell@comcast.net>