From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752847AbbDCSIg (ORCPT ); Fri, 3 Apr 2015 14:08:36 -0400 Received: from mail-wg0-f51.google.com ([74.125.82.51]:36459 "EHLO mail-wg0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751186AbbDCSIe (ORCPT ); Fri, 3 Apr 2015 14:08:34 -0400 Message-ID: <1428084499.3475.40.camel@gmail.com> Subject: Re: [PATCH 2/2] nohz: make nohz_full imply isolcpus From: Mike Galbraith To: cmetcalf@ezchip.com Cc: "Peter Zijlstra (Intel)" , Frederic Weisbecker , "Paul E. McKenney" , "Rafael J. Wysocki" , Martin Schwidefsky , Ingo Molnar , linux-kernel@vger.kernel.org Date: Fri, 03 Apr 2015 20:08:19 +0200 In-Reply-To: <1428078248-5425-2-git-send-email-cmetcalf@ezchip.com> References: <1428078248-5425-1-git-send-email-cmetcalf@ezchip.com> <1428078248-5425-2-git-send-email-cmetcalf@ezchip.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.16.0 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 2015-04-03 at 12:24 -0400, cmetcalf@ezchip.com wrote: > From: Chris Metcalf > > It's not clear that nohz_full is useful without isolcpus also > set, since otherwise the scheduler has to run periodically to > try to determine whether to steal work from other cores. > > Signed-off-by: Chris Metcalf Ack! nohz_full= as currently defined makes zero sense when the cpu set (which should be spelled cpuset) remains connected to the scheduler. Perturbation of tasks to PREVENT cpu domination is what the scheduler does for a living. Sprinkling microsecond savers all over the kernel is pretty silly if you don't shut down the mother lode of perturbation. > --- > I am puzzled why this has not been done before, so I suspect > there is some argument against it that I am missing, but I > wasn't able to turn anything up by searching LKML. > > kernel/sched/core.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index f0f831e8a345..275f12c608f2 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -6836,6 +6836,7 @@ static int init_sched_domains(const struct > cpumask *cpu_map) > doms_cur = alloc_sched_domains(ndoms_cur); > if (!doms_cur) > doms_cur = &fallback_doms; > + tick_nohz_full_set_cpus(cpu_isolated_map); > cpumask_andnot(doms_cur[0], cpu_map, cpu_isolated_map); > err = build_sched_domains(doms_cur[0], NULL); > register_sched_domain_sysctl();