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

From: Gene Heskett
Date: Sat Apr 25 2015 - 19:50:31 EST


On Saturday 25 April 2015 19:13:10 Frederic Weisbecker wrote:
> 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@xxxxxxxxxx>
> > >
> > > 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@xxxxxxxxx> ["thumbs up!"]
> > > Acked-by: Rik van Riel <riel@xxxxxxxxxx>
> > > Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> > > Signed-off-by: Chris Metcalf <cmetcalf@xxxxxxxxxx>
> > > Cc: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> > > Cc: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> > > Cc: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> > > Cc: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
> > > Cc: Mike Galbraith <umgwanakikbuti@xxxxxxxxx>
> > > Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> > > Cc: Rik van Riel <riel@xxxxxxxxxx>
> > > Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> >
> > 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.

TBT I am probably too paranoid for my own good, but I did want to be
heard from the far corner of the cheap seats in the bleachers. I write
my stuff in bash, but there are, I expect, some guys in our group who
could given enough time, run down anything that breaks it for us and
patch it back out. We are the guys who generally run an RTAI patched
kernel anyway.

Some of the machinery driven by LinuxCNC is pretty good sized stuff, like
a 5 axis milling machine in Cincinnati that may be the biggest one
Cincinnati ever made, bed is 26 feet long, nearly 6 feet wide. The whole
thing is a bit over 200k lbs. Bad controller, controller company gone,
sold at scrap cheap. Adapted it to be run by LinuxCNC. After
commissioning it, he turned his shop machinists loose to use it. First
job was a locomotive axle bearing seat in a multi-ton truck casting,
needed .001" tolerance for a shrink fitted bearing. Measured when done,
it was off .0002" worst case. It has been detected by the seismographs
at the UNI across town. :) My biggest machine is less than 200 lbs.
Toy's IOW.

Thank you for taking the time to reply, Frederick. Its appreciated.

Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/