Re: [PATCH v2] sched/rt: Add comments describing the RT IPI pull method

From: Peter Zijlstra
Date: Wed Mar 01 2017 - 04:45:49 EST


On Tue, Feb 28, 2017 at 03:50:30PM -0500, Steven Rostedt wrote:
> + * The overloaded RT CPU, wher receiving an IPI, will try to push off its

"wher" isn't in my dictionary, I'm thinking you mean: "when". Fixed that
for you.

> + * overloaded RT tasks and then send an IPI to the next CPU that has
> + * overloaded RT tasks. This stops when all CPUs with overloaded RT tasks
> + * have completed. Just because a CPU may have pushed off its own overloaded
> + * RT task does not mean it should stop sending the IPI around to other
> + * overloaded CPUs. There may be another RT task waiting to run on one of
> + * those CPUs that are of higher priority than the one that was just
> + * pushed.
> + *
> + * An optimization that could possibly be made is to make a CPU array similar
> + * to the cpupri array mask of all running RT tasks, but for the overloaded
> + * case, then the IPI could be sent to only the CPU with the highest priority
> + * RT task waiting, and that CPU could send off further IPIs to the CPU with
> + * the next highest waiting task. Since the overloaded case is much less likely
> + * to happen, the complexity of this implementation may not be worth it.
> + * Instead, just send an IPI around to all overloaded CPUs.

Yeah, not sure, I'll leave it in though.