Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp2217900iob; Fri, 20 May 2022 04:53:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwLdpGA6EN05DMAElkhxmirnAp9090qGgxkcLT9n+jN+8l0x0KFLjEZghgexyvCqa6UZ80B X-Received: by 2002:aa7:c417:0:b0:42a:c3dd:4148 with SMTP id j23-20020aa7c417000000b0042ac3dd4148mr10558579edq.379.1653047598516; Fri, 20 May 2022 04:53:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653047598; cv=none; d=google.com; s=arc-20160816; b=P+xxEcuwy2RhtctPZMa6VVImIiijH/uMBa93mAGLhdEuEkUfVtkO37Z8IoNnKW56Yl wfZbJRooiXCsnu+6rROGf5lm7Q6cO+p2XMn462p74v+ek+nGAAM+zBY51Dgrupv+zrvh lG6y8D2TAK8FjzypXr2tULLwAlAur8mJvf8XNuEgjlmXaSdYU2OInqQAaAeRfsU/VAkB 4ugh7irGXGx//UNo972iy3SjQZgPkPyAOQiymi+O0FCFvx+KRUYtjbhPHXyhTZORvUrT e/ZBuc6pZRn6f0INVPMCTGSYFeJbr7jt7ODe0OL49I8AbPsJdGBJZ2JIMHftDq7FzGwC RGCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:date:cc:to:from:subject :message-id:dkim-signature; bh=XPnOfo2778RAqp9Ee491Lui796CVXEiH9woUM1tABcs=; b=HlfWv5jpDdEAVBSDCRH2Aie8M/VmPObtkRfuC8fEYIBz+pQWcDk6Cn+M8QXdP7S33d r4NZLYtRtL00x/9WAFSTBTrrSXhT8KCDEb8+hrIDiUmhN8qZb/C6M0J43NeuZedLhq8G XY2lHPTe/xkSFtDp2A46vdfBTe9O8nHoQaF2VSU5xTxUOu7mVcsM65o+55jxFvvIEn5y CpT3tecj/Z4Xlat9hkn2FhJ8DV4HS/Aj/vmap2Yu1VnQPOQAcxxSIm+Ov+EnIPK0hbmZ wlMFlrsuJLzAp3hfJyQMCqO+L2iQ13SvU9KT8IqrEmEMQ46pdHFuUEz9sGKrLsKCFTk0 BH9A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=jbEoRYka; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g9-20020a056402090900b0042ab170477asi5695586edz.267.2022.05.20.04.52.52; Fri, 20 May 2022 04:53:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=jbEoRYka; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239088AbiESWQq (ORCPT + 99 others); Thu, 19 May 2022 18:16:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40886 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229754AbiESWQp (ORCPT ); Thu, 19 May 2022 18:16:45 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AE5295E17F for ; Thu, 19 May 2022 15:16:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1652998604; x=1684534604; h=message-id:subject:from:to:cc:date:in-reply-to: references:mime-version:content-transfer-encoding; bh=V49pp99X+pYdjATfmQyU9u+JGWms4wsV8/Z66YSfiEA=; b=jbEoRYkaucbBQtIpuBOBeUCrZKFswYfvGuVpmyPZOaPU28JwgXi6yi7M N/rvJKuI3ItjPOThddJM3x7iSOOnAIRvFCveLDHW09LSAYAUWO5NliTaF u3ORYGRCcW3J7kvbApPLvRlphNWrOyJLpxRA3rcnBOJqBjnpnsbq14aih pI4F+lwDmmNesSqYB2R+2E6llCjO3LDXnWqOyr5qnwxbCL294TRxmlxh2 eupn/tlGIfvuKZZXdSzYAzDQBO66Zw1zP0sKBALTKOTQS2KCecP/2Zk/h r2UYfJD1FFzVf4rBds9tGI7EpO7AqQ0xB0duKSBZLiDOOJjHYKNCPY9eO w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="271219784" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="271219784" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2022 15:16:44 -0700 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="640017454" Received: from schen9-mobl.amr.corp.intel.com ([10.209.69.70]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2022 15:16:43 -0700 Message-ID: Subject: Re: [PATCH v3] sched/fair: filter out overloaded cpus in SIS From: Tim Chen To: Abel Wu , Peter Zijlstra , Mel Gorman , Vincent Guittot , Josh Don Cc: linux-kernel@vger.kernel.org Date: Thu, 19 May 2022 15:16:31 -0700 In-Reply-To: <20220505122331.42696-1-wuyun.abel@bytedance.com> References: <20220505122331.42696-1-wuyun.abel@bytedance.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.4 (3.34.4-1.fc31) MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 2022-05-05 at 20:23 +0800, Abel Wu wrote: > > Signed-off-by: Abel Wu > --- > include/linux/sched/topology.h | 12 ++++++++++ > kernel/sched/core.c | 38 ++++++++++++++++++++++++++++++ > kernel/sched/fair.c | 43 +++++++++++++++++++++++++++------- > kernel/sched/idle.c | 1 + > kernel/sched/sched.h | 4 ++++ > kernel/sched/topology.c | 4 +++- > 6 files changed, 92 insertions(+), 10 deletions(-) > > diff --git a/include/linux/sched/topology.h b/include/linux/sched/topology.h > index 56cffe42abbc..95c7ad1e05b5 100644 > --- a/include/linux/sched/topology.h > +++ b/include/linux/sched/topology.h > @@ -81,8 +81,20 @@ struct sched_domain_shared { > atomic_t ref; > atomic_t nr_busy_cpus; > int has_idle_cores; > + > + /* > + * Tracking of the overloaded cpus can be heavy, so start > + * a new cacheline to avoid false sharing. > + */ > + atomic_t nr_overloaded_cpus ____cacheline_aligned; Abel, This is nice work. I have one comment. The update and reading of nr_overloaded_cpus will incur cache bouncing cost. As far as I can tell, this counter is used to determine if we should bail out from the search for an idle CPUs if the system is heavily loaded. And I hope we can avoid using atomic counter in these heavily used scheduler paths. The logic to filter overloaded CPUs only need overloaded_cpus[] mask and not the nr_overloaded_cpus counter. So I recommend that you break out the logic of using nr_overloaded_cpus atomic counter to detect LLC has heavy load as a second patch so that it can be evaluated on its own merit. That functionality overlaps with Chen Yu's patch to limit search depending on load, so it will be easier to compare the two approaches if it is separated. Otherwise, the logic in the patch to use overloaded_cpus[] mask to filter out the overloaded cpus looks fine and complements Chen Yu's patch. Thanks. Tim > + unsigned long overloaded_cpus[]; /* Must be last */ }; > >