Messages in this thread | | | Date | Thu, 17 Nov 2016 10:17:25 -0500 | From | Steven Rostedt <> | Subject | Re: [PATCH] Fix: disable sys_membarrier when nohz_full is enabled |
| |
On Thu, 17 Nov 2016 15:02:18 +0000 (UTC) Mathieu Desnoyers <mathieu.desnoyers@efficios.com> wrote:
> That's an interesting approach. I would be tempted to give it a > per-thread (rather than per-process) scope.
Sure, per thread, but have it inherit to child processes.
> > E.g., a thread could do the following to ask to be > interrupted by IPIs: > > membarrier(MEMBARRIER_CMD_REGISTER_EXPEDITED, 0) > > and could unregister with: > > membarrier(MEMBARRIER_CMD_UNREGISTER_EXPEDITED, 0)
Sure why not ;-)
> > We can then keep a per-thread refcount internally. > (not sure the "EXPEDITED" is the right word there... > do we want it to be "NOHZ_FULL" instead ?)
No, it shouldn't mention NOHZ_FULL. Perhaps have all tasks do this regardless, even though it will only affect nohz full ones. But in the future it may be other tasks as well.
> > Then in membarrier(MEMBARRIER_CMD_SHARED, 0), for each > nohz_full cpu, we grab the rq lock, and only send an IPI > if the running thread is registered as "expedited".
Yeah, something like that. That way it wont interrupt tasks that are running in no-hz-full and don't care about this syscall.
-- Steve
| |