On Thu, 17 Nov 2016 15:02:18 +0000 (UTC) Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx> 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 -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html