Re: [PATCH] Fix: disable sys_membarrier when nohz_full is enabled

From: Steven Rostedt
Date: Thu Nov 17 2016 - 12:19:23 EST


On Thu, 17 Nov 2016 13:54:27 +0000 (UTC)
Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx> wrote:


> >> >
> >> > Acked-by: Lai Jiangshan <jiangshanlai@xxxxxxxxx>
> >> >
> >> > But I'm afraid, in the future, tick_nohz_full will become a default y
> >> > feature. thus it makes sys_membarrier() always disabled. we might
> >> > need a new MEMBARRIER_CMD_XXX to handle it?
> >>
> >> This may require that we send an IPI to nohz_full CPUs, which will
> >> disturb them real-time wise. Any better ideas ?
> >
> > Restrict the IPIs to CPUs running the process executing the
> > sys_membarrier() system call. This would mean that CPUs only
> > are interrupted by their own application's request.
>
> This would break use-cases of cross-process shared memory. :-(

Perhaps make this an opt in. That is, all processes that want to be
affected by this can call this function with some flag that sets a flag
in tasks struct. And have that process get an IPI even in no-hz-full
mode if it asked to do it.

-- Steve