Re: [PATCH 4/4] nohz: Set isolcpus when nohz_full is set

Frederic Weisbecker
2015-04-25T23:13:17Z

On Fri, Apr 24, 2015 at 04:07:52PM -0400, Gene Heskett wrote:
> On Friday 24 April 2015 11:58:31 Frederic Weisbecker wrote:
> > From: Chris Metcalf <cmetcalf@ezchip.com>
> >
> > nohz_full is only useful with isolcpus also set, since otherwise the
> > scheduler has to run periodically to try to determine whether to steal
> > work from other cores.
> >
> > Accordingly, when booting with nohz_full=xxx on the command line, we
> > should act as if isolcpus=xxx was also set, and set (or extend) the
> > isolcpus set to include the nohz_full cpus.
> >
> > Acked-by: Mike Galbraith <umgwanakikbuti@gmail.com> ["thumbs up!"]
> > Acked-by: Rik van Riel <riel@redhat.com>
> > Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> > Signed-off-by: Chris Metcalf <cmetcalf@ezchip.com>
> > Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
> > Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> > Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
> > Cc: Mike Galbraith <umgwanakikbuti@gmail.com>
> > Cc: Ingo Molnar <mingo@redhat.com>
> > Cc: Rik van Riel <riel@redhat.com>
> > Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
>
> As a user of LinuxCNC, we expect the core(s) so isolated by the isolcpus
> argument at bootup time to remain undisturbed in order to preserve the
> I/O updates heartbeat latency at the absolute minimum that board and cpu
> combo can accomplish.
>
> If this patch changes that behaviour such that the isolated core is
> grabbed for another job while the RTAI bits and pieces are loaded and
> running machinery, causing the machinery to lose this steady, possibly
> as little as a 20 microsecond period repeating operation heartbeat, this
> will quite effectively destroy our ability to run this software on linux
> without farming that whole operation out to intelligent I/O cards.
>
> Please keep this in mind. I don't read the patch well enough to
> determine this myself.

I think it's not a problem. This patch isn't adding any work or noise to
isolcpus, it's actually setting CPUs that run tickless in userspace to be
part of the isolcpus set, because we need userspace-tickless CPUs to not
be disturbed at all. You shouldn't be concerned if you don't use full
dynticks.

If you happen to use full dynticks in your usecase one day, you'll use it
on your isolcpus anyway.