[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250915124600.GE3245006@noisy.programming.kicks-ass.net>
Date: Mon, 15 Sep 2025 14:46:00 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Tim Chen <tim.c.chen@...ux.intel.com>
Cc: Ingo Molnar <mingo@...hat.com>, Juri Lelli <juri.lelli@...hat.com>,
Dietmar Eggemann <dietmar.eggemann@....com>,
Ben Segall <bsegall@...gle.com>, Mel Gorman <mgorman@...e.de>,
Valentin Schneider <vschneid@...hat.com>,
Tim Chen <tim.c.chen@...el.com>,
Vincent Guittot <vincent.guittot@...aro.org>,
Libo Chen <libo.chen@...cle.com>,
Abel Wu <wuyun.abel@...edance.com>, Len Brown <len.brown@...el.com>,
linux-kernel@...r.kernel.org, Chen Yu <yu.c.chen@...el.com>,
K Prateek Nayak <kprateek.nayak@....com>,
"Gautham R . Shenoy" <gautham.shenoy@....com>,
Zhao Liu <zhao1.liu@...el.com>,
Vinicius Costa Gomes <vinicius.gomes@...el.com>,
Arjan Van De Ven <arjan.van.de.ven@...el.com>
Subject: Re: [PATCH v3 2/2] sched: Fix sched domain build error for GNR, CWF
in SNC-3 mode
On Thu, Sep 11, 2025 at 11:30:57AM -0700, Tim Chen wrote:
> diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
> index 33e166f6ab12..3f894c525e49 100644
> --- a/arch/x86/kernel/smpboot.c
> +++ b/arch/x86/kernel/smpboot.c
> @@ -515,6 +515,34 @@ static void __init build_sched_topology(void)
> set_sched_topology(topology);
> }
>
> +int arch_sched_node_distance(int from, int to)
> +{
> + int d = node_distance(from, to);
> +
> + if (!x86_has_numa_in_package)
> + return d;
> +
> + switch (boot_cpu_data.x86_vfm) {
> + case INTEL_GRANITERAPIDS_X:
> + case INTEL_ATOM_DARKMONT_X:
> + if (d < REMOTE_DISTANCE)
> + return d;
> +
> + /*
> + * Trim finer distance tuning for nodes in remote package
> + * for the purpose of building sched domains. Put NUMA nodes
> + * in each remote package in the same sched group.
> + * Simplify NUMA domains and avoid extra NUMA levels including
> + * different NUMA nodes in remote packages.
> + *
> + * GNR and CWF don't expect systmes with more than 2 packages
> + * and more than 2 hops between packages.
> + */
> + d = sched_avg_remote_numa_distance;
So all of that avg_remote crap should live here, and in this patch. It
really should not be in generic code.
You really need to assert this 'expectation', otherwise weird stuff will
happen. The whole 'avg_remote' thing hard relies on there being a single
remote package.
> + }
> + return d;
> +}
Powered by blists - more mailing lists