Re: [RFC PATCH v13] sys_membarrier(): system/process-wide memory barrier (x86)

From: Mathieu Desnoyers
Date: Tue Mar 17 2015 - 15:27:20 EST


----- Original Message -----
> ----- Original Message -----
> > On Tue, Mar 17, 2015 at 01:22:02PM -0400, Mathieu Desnoyers wrote:
> > > --- a/init/Kconfig
> > > +++ b/init/Kconfig
> > > @@ -1568,6 +1568,15 @@ config PCI_QUIRKS
> > > bugs/quirks. Disable this only if your target machine is
> > > unaffected by PCI quirks.
> > >
> > > +config MEMBARRIER
> > > + bool "Enable membarrier() system call" if EXPERT
> > > + default y
> > > + help
> > > + Enable the membarrier() system call that allows issuing
> > > + memory barriers across cores.
> >
> > Nit: CPUs, not cores. Nothing here is specific to
> > packages/cores/threads.
>
> Fixed.
>
> >
> > > --- a/kernel/rcu/update.c
> > > +++ b/kernel/rcu/update.c
> > > @@ -49,6 +49,8 @@
> > > #include <linux/module.h>
> > > #include <linux/kthread.h>
> > > #include <linux/tick.h>
> > > +#include <linux/syscalls.h>
> > > +#include <linux/membarrier.h>
> > >
> > > #define CREATE_TRACE_POINTS
> > >
> > > @@ -775,3 +777,73 @@ late_initcall(rcu_verify_early_boot_tests);
> > > #else
> > > void rcu_early_boot_tests(void) {}
> > > #endif /* CONFIG_PROVE_RCU */
> > > +
> > > +#ifdef CONFIG_MEMBARRIER
> >
> > As mentioned in my previous mail, please consider moving this to its own
> > file, if it doesn't use any of the internals of kernel/rcu/update.c
> > (which I don't think it does). That then means you can enable/disable
> > the entire file in the Makefile rather than using an #ifdef in the .c
> > file.
>
> Will do, thanks!

I'm adding include/uapi/linux/membarrier.h and kernel/membarrier.c,
how should I add them to the MAINTAINERS file ?

Thanks,

Mathieu

>
> Mathieu
>
> >
> > - Josh Triplett
> >
>
> --
> Mathieu Desnoyers
> EfficiOS Inc.
> http://www.efficios.com
>

--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/