From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 067AB282F1C for ; Thu, 12 Mar 2026 09:34:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=90.155.92.199 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773308086; cv=none; b=kcyMhxAApBgseHUHXe2lySE/ymwKkBF6dg3X5VtPAw5VoWlcAGO45uDiQquVzgt2t5fy9tS09+LQHSuoeCq/osZn6oPu9WrxOQJ/4J39ctOTMnN46QW5jJYw8YTmmkjiKinV02+FbE03thrg/ziGGv9AIiMZo/5XPQgvAtlOR88= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773308086; c=relaxed/simple; bh=uiXRVYI8RatPVR5KyCvM/0JAyVEO+6WNBbPGI83dfb4=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=REMDqge3K+xiBnm2i5yvsGqYpyMGKroTy26QhfFK99qOUuVBTwCM2gGcrR6D2JAyKz9hrxYITK0XzVZC4Yeb9UGds0zmANQMl/dNade8Y4PLq+QiVkm4xfczVwYFm7vlK+zMbne8F+q9uKbkaA4sdwfeN7O/XoL3ZtLxNmcL4vs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=infradead.org; spf=none smtp.mailfrom=infradead.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b=JPxhQODg; arc=none smtp.client-ip=90.155.92.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=infradead.org Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=infradead.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="JPxhQODg" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=Ur39YUfmF7J/SeTMdRGe55bA5+5xfhXJ/Qtq2S9vdOE=; b=JPxhQODgGH40vPwYouIcd/9WL4 FK306NcjXAWCPvPxfOanz5sMibL1HujFFab/53Zp9dqxtfbPIjAk3pf9j/VDaxpR0W23EbBHBaC1s E4ZCTTYCczfcor7iGuT70Hjc60mWy3b9FHvAMYEen0j6A382u5nnN0Yuk4FLPKHCZuyZ3HIA5zRYG 5Z+ri4AHjxyVSyY7IylsU5wluHMzBec2GReEiJdIqWXUT6Fz2SZTeagKyk6HpVHeuhuVHAqsMsdYo S54CbgfANcVpcWNfUDBI+KhmuniTYJthnqBi2iiG4leeoirdMZ0EIBEfFyJIMfbNW7PaZlxErH8IQ WpdDIoPA==; Received: from 77-249-17-252.cable.dynamic.v4.ziggo.nl ([77.249.17.252] helo=noisy.programming.kicks-ass.net) by desiato.infradead.org with esmtpsa (Exim 4.98.2 #2 (Red Hat Linux)) id 1w0cR3-00000000qHW-3fOs; Thu, 12 Mar 2026 09:34:31 +0000 Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000) id 8F16C301185; Thu, 12 Mar 2026 10:34:28 +0100 (CET) Date: Thu, 12 Mar 2026 10:34:28 +0100 From: Peter Zijlstra To: K Prateek Nayak Cc: Ingo Molnar , Juri Lelli , Vincent Guittot , Valentin Schneider , linux-kernel@vger.kernel.org, Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Chen Yu , Shrikanth Hegde , Li Chen , "Gautham R. Shenoy" Subject: Re: [PATCH v4 1/9] sched/topology: Compute sd_weight considering cpuset partitions Message-ID: <20260312093428.GX1282955@noisy.programming.kicks-ass.net> References: <20260312044434.1974-1-kprateek.nayak@amd.com> <20260312044434.1974-2-kprateek.nayak@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260312044434.1974-2-kprateek.nayak@amd.com> On Thu, Mar 12, 2026 at 04:44:26AM +0000, K Prateek Nayak wrote: > diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c > index 061f8c85f555..34b20b0e1867 100644 > --- a/kernel/sched/topology.c > +++ b/kernel/sched/topology.c > @@ -1645,8 +1645,6 @@ sd_init(struct sched_domain_topology_level *tl, > struct cpumask *sd_span; > u64 now = sched_clock(); > > - sd_weight = cpumask_weight(tl->mask(tl, cpu)); > - > if (tl->sd_flags) > sd_flags = (*tl->sd_flags)(); > if (WARN_ONCE(sd_flags & ~TOPOLOGY_SD_FLAGS, > @@ -1654,8 +1652,6 @@ sd_init(struct sched_domain_topology_level *tl, > sd_flags &= TOPOLOGY_SD_FLAGS; > > *sd = (struct sched_domain){ > - .min_interval = sd_weight, > - .max_interval = 2*sd_weight, > .busy_factor = 16, > .imbalance_pct = 117, > > @@ -1675,7 +1671,6 @@ sd_init(struct sched_domain_topology_level *tl, > , > > .last_balance = jiffies, > - .balance_interval = sd_weight, > > /* 50% success rate */ > .newidle_call = 512, > @@ -1693,6 +1688,11 @@ sd_init(struct sched_domain_topology_level *tl, > cpumask_and(sd_span, cpu_map, tl->mask(tl, cpu)); > sd_id = cpumask_first(sd_span); > > + sd_weight = cpumask_weight(sd_span); > + sd->min_interval = sd_weight; > + sd->max_interval = 2 * sd_weight; > + sd->balance_interval = sd_weight; > + > sd->flags |= asym_cpu_capacity_classify(sd_span, cpu_map); > > WARN_ONCE((sd->flags & (SD_SHARE_CPUCAPACITY | SD_ASYM_CPUCAPACITY)) == Why not like so? diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index 061f8c85f555..79bab80af8f2 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -1645,13 +1645,17 @@ sd_init(struct sched_domain_topology_level *tl, struct cpumask *sd_span; u64 now = sched_clock(); - sd_weight = cpumask_weight(tl->mask(tl, cpu)); + sd_span = sched_domain_span(sd); + cpumask_and(sd_span, cpu_map, tl->mask(tl, cpu)); + sd_weight = cpumask_weight(sd_span); + sd_id = cpumask_first(sd_span); if (tl->sd_flags) sd_flags = (*tl->sd_flags)(); if (WARN_ONCE(sd_flags & ~TOPOLOGY_SD_FLAGS, - "wrong sd_flags in topology description\n")) + "wrong sd_flags in topology description\n")) sd_flags &= TOPOLOGY_SD_FLAGS; + sd_flags |= asym_cpu_capacity_classify(sd_span, cpu_map); *sd = (struct sched_domain){ .min_interval = sd_weight, @@ -1689,12 +1693,6 @@ sd_init(struct sched_domain_topology_level *tl, .name = tl->name, }; - sd_span = sched_domain_span(sd); - cpumask_and(sd_span, cpu_map, tl->mask(tl, cpu)); - sd_id = cpumask_first(sd_span); - - sd->flags |= asym_cpu_capacity_classify(sd_span, cpu_map); - WARN_ONCE((sd->flags & (SD_SHARE_CPUCAPACITY | SD_ASYM_CPUCAPACITY)) == (SD_SHARE_CPUCAPACITY | SD_ASYM_CPUCAPACITY), "CPU capacity asymmetry not supported on SMT\n");