* [PATCH v2 0/2] sched/topology: Optimize topology_span_sane()
@ 2024-04-10 21:33 Kyle Meyer
2024-04-10 21:33 ` [PATCH v2 1/2] cpumask: Add for_each_cpu_from() Kyle Meyer
2024-04-10 21:33 ` [PATCH v2 2/2] sched/topology: Optimize topology_span_sane() Kyle Meyer
0 siblings, 2 replies; 14+ messages in thread
From: Kyle Meyer @ 2024-04-10 21:33 UTC (permalink / raw)
To: linux-kernel, yury.norov, andriy.shevchenko, linux, mingo,
peterz, juri.lelli, vincent.guittot, dietmar.eggemann, rostedt,
bsegall, mgorman, bristot, vschneid
Cc: russ.anderson, dimitri.sivanich, steve.wahl, Kyle Meyer
A soft lockup is being detected in build_sched_domains() on 32 socket
Sapphire Rapids systems with 3840 processors.
topology_span_sane(), called by build_sched_domains(), checks that each
processor's non-NUMA scheduling domains are completely equal or
completely disjoint. If a non-NUMA scheduling domain partially overlaps
another, scheduling groups can break.
This series adds for_each_cpu_from() as a generic cpumask macro to
optimize topology_span_sane() by removing duplicate comparisons. The
total number of comparisons is reduced from N * (N - 1) to
N * (N - 1) / 2 on each non-NUMA scheduling domain level, decreasing
the boot time by approximately 20 seconds and preventing the soft lockup
on the mentioned systems.
Changes in v2:
* 1/2: Change for_each_cpu()'s description.
* 2/2: Add more information to the commit message.
* https://lore.kernel.org/linux-kernel/20240409155250.3660517-1-kyle.meyer@hpe.com/T/
Kyle Meyer (2):
cpumask: Add for_each_cpu_from()
sched/topology: Optimize topology_span_sane()
include/linux/cpumask.h | 10 ++++++++++
kernel/sched/topology.c | 6 ++----
2 files changed, 12 insertions(+), 4 deletions(-)
--
2.44.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 1/2] cpumask: Add for_each_cpu_from()
2024-04-10 21:33 [PATCH v2 0/2] sched/topology: Optimize topology_span_sane() Kyle Meyer
@ 2024-04-10 21:33 ` Kyle Meyer
2024-04-15 11:50 ` Valentin Schneider
2024-04-10 21:33 ` [PATCH v2 2/2] sched/topology: Optimize topology_span_sane() Kyle Meyer
1 sibling, 1 reply; 14+ messages in thread
From: Kyle Meyer @ 2024-04-10 21:33 UTC (permalink / raw)
To: linux-kernel, yury.norov, andriy.shevchenko, linux, mingo,
peterz, juri.lelli, vincent.guittot, dietmar.eggemann, rostedt,
bsegall, mgorman, bristot, vschneid
Cc: russ.anderson, dimitri.sivanich, steve.wahl, Kyle Meyer
Add for_each_cpu_from() as a generic cpumask macro.
for_each_cpu_from() is the same as for_each_cpu(), except it starts at
@cpu instead of zero.
Signed-off-by: Kyle Meyer <kyle.meyer@hpe.com>
Acked-by: Yury Norov <yury.norov@gmail.com>
---
include/linux/cpumask.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
index 1c29947db848..d75060fbd058 100644
--- a/include/linux/cpumask.h
+++ b/include/linux/cpumask.h
@@ -368,6 +368,16 @@ unsigned int __pure cpumask_next_wrap(int n, const struct cpumask *mask, int sta
#define for_each_cpu_or(cpu, mask1, mask2) \
for_each_or_bit(cpu, cpumask_bits(mask1), cpumask_bits(mask2), small_cpumask_bits)
+/**
+ * for_each_cpu_from - iterate over CPUs present in @mask, from @cpu to the end of @mask.
+ * @cpu: the (optionally unsigned) integer iterator
+ * @mask: the cpumask pointer
+ *
+ * After the loop, cpu is >= nr_cpu_ids.
+ */
+#define for_each_cpu_from(cpu, mask) \
+ for_each_set_bit_from(cpu, cpumask_bits(mask), small_cpumask_bits)
+
/**
* cpumask_any_but - return a "random" in a cpumask, but not this one.
* @mask: the cpumask to search
--
2.44.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/2] cpumask: Add for_each_cpu_from()
2024-04-10 21:33 ` [PATCH v2 1/2] cpumask: Add for_each_cpu_from() Kyle Meyer
@ 2024-04-15 11:50 ` Valentin Schneider
0 siblings, 0 replies; 14+ messages in thread
From: Valentin Schneider @ 2024-04-15 11:50 UTC (permalink / raw)
To: Kyle Meyer, linux-kernel, yury.norov, andriy.shevchenko, linux,
mingo, peterz, juri.lelli, vincent.guittot, dietmar.eggemann,
rostedt, bsegall, mgorman, bristot
Cc: russ.anderson, dimitri.sivanich, steve.wahl, Kyle Meyer
On 10/04/24 16:33, Kyle Meyer wrote:
> Add for_each_cpu_from() as a generic cpumask macro.
>
> for_each_cpu_from() is the same as for_each_cpu(), except it starts at
> @cpu instead of zero.
>
> Signed-off-by: Kyle Meyer <kyle.meyer@hpe.com>
> Acked-by: Yury Norov <yury.norov@gmail.com>
Reviewed-by: Valentin Schneider <vschneid@redhat.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 2/2] sched/topology: Optimize topology_span_sane()
2024-04-10 21:33 [PATCH v2 0/2] sched/topology: Optimize topology_span_sane() Kyle Meyer
2024-04-10 21:33 ` [PATCH v2 1/2] cpumask: Add for_each_cpu_from() Kyle Meyer
@ 2024-04-10 21:33 ` Kyle Meyer
2024-04-11 10:38 ` Andy Shevchenko
2024-04-15 11:50 ` Valentin Schneider
1 sibling, 2 replies; 14+ messages in thread
From: Kyle Meyer @ 2024-04-10 21:33 UTC (permalink / raw)
To: linux-kernel, yury.norov, andriy.shevchenko, linux, mingo,
peterz, juri.lelli, vincent.guittot, dietmar.eggemann, rostedt,
bsegall, mgorman, bristot, vschneid
Cc: russ.anderson, dimitri.sivanich, steve.wahl, Kyle Meyer
Optimize topology_span_sane() by removing duplicate comparisons.
Since topology_span_sane() is called inside of for_each_cpu(), each
pervious CPU has already been compared against every other CPU. The
current CPU only needs to be compared against higher-numbered CPUs.
The total number of comparisons is reduced from N * (N - 1) to
N * (N - 1) / 2 on each non-NUMA scheduling domain level.
Signed-off-by: Kyle Meyer <kyle.meyer@hpe.com>
Reviewed-by: Yury Norov <yury.norov@gmail.com>
Acked-by: Vincent Guittot <vincent.guittot@linaro.org>
---
kernel/sched/topology.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
index 99ea5986038c..b6bcafc09969 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -2347,7 +2347,7 @@ static struct sched_domain *build_sched_domain(struct sched_domain_topology_leve
static bool topology_span_sane(struct sched_domain_topology_level *tl,
const struct cpumask *cpu_map, int cpu)
{
- int i;
+ int i = cpu + 1;
/* NUMA levels are allowed to overlap */
if (tl->flags & SDTL_OVERLAP)
@@ -2359,9 +2359,7 @@ static bool topology_span_sane(struct sched_domain_topology_level *tl,
* breaking the sched_group lists - i.e. a later get_group() pass
* breaks the linking done for an earlier span.
*/
- for_each_cpu(i, cpu_map) {
- if (i == cpu)
- continue;
+ for_each_cpu_from(i, cpu_map) {
/*
* We should 'and' all those masks with 'cpu_map' to exactly
* match the topology we're about to build, but that can only
--
2.44.0
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: [PATCH v2 2/2] sched/topology: Optimize topology_span_sane()
2024-04-10 21:33 ` [PATCH v2 2/2] sched/topology: Optimize topology_span_sane() Kyle Meyer
@ 2024-04-11 10:38 ` Andy Shevchenko
2024-04-11 21:55 ` Kyle Meyer
2024-04-15 11:50 ` Valentin Schneider
1 sibling, 1 reply; 14+ messages in thread
From: Andy Shevchenko @ 2024-04-11 10:38 UTC (permalink / raw)
To: Kyle Meyer
Cc: linux-kernel, yury.norov, linux, mingo, peterz, juri.lelli,
vincent.guittot, dietmar.eggemann, rostedt, bsegall, mgorman,
bristot, vschneid, russ.anderson, dimitri.sivanich, steve.wahl
On Wed, Apr 10, 2024 at 04:33:11PM -0500, Kyle Meyer wrote:
> Optimize topology_span_sane() by removing duplicate comparisons.
>
> Since topology_span_sane() is called inside of for_each_cpu(), each
> pervious CPU has already been compared against every other CPU. The
previous
> current CPU only needs to be compared against higher-numbered CPUs.
>
> The total number of comparisons is reduced from N * (N - 1) to
> N * (N - 1) / 2 on each non-NUMA scheduling domain level.
Thank you, now it makes sense.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/2] sched/topology: Optimize topology_span_sane()
2024-04-11 10:38 ` Andy Shevchenko
@ 2024-04-11 21:55 ` Kyle Meyer
2024-04-12 14:25 ` Andy Shevchenko
0 siblings, 1 reply; 14+ messages in thread
From: Kyle Meyer @ 2024-04-11 21:55 UTC (permalink / raw)
To: Andy Shevchenko
Cc: linux-kernel, yury.norov, linux, mingo, peterz, juri.lelli,
vincent.guittot, dietmar.eggemann, rostedt, bsegall, mgorman,
bristot, vschneid, russ.anderson, dimitri.sivanich, steve.wahl
On Thu, Apr 11, 2024 at 01:38:46PM +0300, Andy Shevchenko wrote:
> On Wed, Apr 10, 2024 at 04:33:11PM -0500, Kyle Meyer wrote:
> > Optimize topology_span_sane() by removing duplicate comparisons.
> >
> > Since topology_span_sane() is called inside of for_each_cpu(), each
> > pervious CPU has already been compared against every other CPU. The
>
> previous
Thank you for pointing that out. Should I send an updated version or can
a maintainer correct my mistake?
> > current CPU only needs to be compared against higher-numbered CPUs.
> >
> > The total number of comparisons is reduced from N * (N - 1) to
> > N * (N - 1) / 2 on each non-NUMA scheduling domain level.
>
> Thank you, now it makes sense.
Thanks,
Kyle Meyer
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/2] sched/topology: Optimize topology_span_sane()
2024-04-11 21:55 ` Kyle Meyer
@ 2024-04-12 14:25 ` Andy Shevchenko
2024-04-13 17:42 ` Yury Norov
0 siblings, 1 reply; 14+ messages in thread
From: Andy Shevchenko @ 2024-04-12 14:25 UTC (permalink / raw)
To: Kyle Meyer
Cc: linux-kernel, yury.norov, linux, mingo, peterz, juri.lelli,
vincent.guittot, dietmar.eggemann, rostedt, bsegall, mgorman,
bristot, vschneid, russ.anderson, dimitri.sivanich, steve.wahl
On Thu, Apr 11, 2024 at 04:55:11PM -0500, Kyle Meyer wrote:
> On Thu, Apr 11, 2024 at 01:38:46PM +0300, Andy Shevchenko wrote:
> > On Wed, Apr 10, 2024 at 04:33:11PM -0500, Kyle Meyer wrote:
...
> > > Since topology_span_sane() is called inside of for_each_cpu(), each
> > > pervious CPU has already been compared against every other CPU. The
> >
> > previous
>
> Thank you for pointing that out. Should I send an updated version or can
> a maintainer correct my mistake?
Depends on the maintainer. I'm not the one here, don't expect answer from me.
> > > current CPU only needs to be compared against higher-numbered CPUs.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/2] sched/topology: Optimize topology_span_sane()
2024-04-12 14:25 ` Andy Shevchenko
@ 2024-04-13 17:42 ` Yury Norov
0 siblings, 0 replies; 14+ messages in thread
From: Yury Norov @ 2024-04-13 17:42 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Kyle Meyer, linux-kernel, linux, mingo, peterz, juri.lelli,
vincent.guittot, dietmar.eggemann, rostedt, bsegall, mgorman,
bristot, vschneid, russ.anderson, dimitri.sivanich, steve.wahl
On Fri, Apr 12, 2024 at 05:25:26PM +0300, Andy Shevchenko wrote:
> On Thu, Apr 11, 2024 at 04:55:11PM -0500, Kyle Meyer wrote:
> > On Thu, Apr 11, 2024 at 01:38:46PM +0300, Andy Shevchenko wrote:
> > > On Wed, Apr 10, 2024 at 04:33:11PM -0500, Kyle Meyer wrote:
>
> ...
>
> > > > Since topology_span_sane() is called inside of for_each_cpu(), each
> > > > pervious CPU has already been compared against every other CPU. The
> > >
> > > previous
> >
> > Thank you for pointing that out. Should I send an updated version or can
> > a maintainer correct my mistake?
>
> Depends on the maintainer. I'm not the one here, don't expect answer from me.
I like this rework, and I'll take it in bitmap-for-next for testing.
I see Vincent already acked it, so I can also move it upstream, if no
objections from Peter, Juri and Ingo.
Thanks,
Yury
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/2] sched/topology: Optimize topology_span_sane()
2024-04-10 21:33 ` [PATCH v2 2/2] sched/topology: Optimize topology_span_sane() Kyle Meyer
2024-04-11 10:38 ` Andy Shevchenko
@ 2024-04-15 11:50 ` Valentin Schneider
1 sibling, 0 replies; 14+ messages in thread
From: Valentin Schneider @ 2024-04-15 11:50 UTC (permalink / raw)
To: Kyle Meyer, linux-kernel, yury.norov, andriy.shevchenko, linux,
mingo, peterz, juri.lelli, vincent.guittot, dietmar.eggemann,
rostedt, bsegall, mgorman, bristot
Cc: russ.anderson, dimitri.sivanich, steve.wahl, Kyle Meyer
On 10/04/24 16:33, Kyle Meyer wrote:
> Optimize topology_span_sane() by removing duplicate comparisons.
>
> Since topology_span_sane() is called inside of for_each_cpu(), each
> pervious CPU has already been compared against every other CPU. The
> current CPU only needs to be compared against higher-numbered CPUs.
>
> The total number of comparisons is reduced from N * (N - 1) to
> N * (N - 1) / 2 on each non-NUMA scheduling domain level.
>
> Signed-off-by: Kyle Meyer <kyle.meyer@hpe.com>
> Reviewed-by: Yury Norov <yury.norov@gmail.com>
> Acked-by: Vincent Guittot <vincent.guittot@linaro.org>
Reviewed-by: Valentin Schneider <vschneid@redhat.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 0/2] sched/topology: optimize topology_span_sane()
@ 2024-08-07 19:05 Yury Norov
2024-08-14 16:35 ` Yury Norov
0 siblings, 1 reply; 14+ messages in thread
From: Yury Norov @ 2024-08-07 19:05 UTC (permalink / raw)
To: linux-kernel
Cc: Yury Norov, Chen Yu, Christophe JAILLET, Leonardo Bras,
Ingo Molnar, Peter Zijlstra, Juri Lelli, Vincent Guittot,
Dietmar Eggemann, Steven Rostedt, Ben Segall, Mel Gorman,
Valentin Schneider
The function may call cpumask_equal with tl->mask(cpu) == tl->mask(i),
even when cpu != i. In such case, cpumask_equal() would always return
true, and we can proceed to the next iteration immediately.
Valentin Schneider shares on it:
PKG can potentially hit that condition, and so can any
sched_domain_mask_f that relies on the node masks...
I'm thinking ideally we should have checks in place to
ensure all node_to_cpumask_map[] masks are disjoint,
then we could entirely skip the levels that use these
masks in topology_span_sane(), but there's unfortunately
no nice way to flag them... Also there would be cases
where there's no real difference between PKG and NODE
other than NODE is still based on a per-cpu cpumask and
PKG isn't, so I don't see a nicer way to go about this.
v1: https://lore.kernel.org/lkml/ZrJk00cmVaUIAr4G@yury-ThinkPad/T/
v2:
- defer initialization of 'mc' in patch #1 @Chen Yu;
- more comments from Valentin Schneider.
Yury Norov (2):
sched/topology: pre-compute topology_span_sane() loop params
sched/topology: optimize topology_span_sane()
kernel/sched/topology.c | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 0/2] sched/topology: optimize topology_span_sane()
2024-08-07 19:05 [PATCH v2 0/2] sched/topology: optimize topology_span_sane() Yury Norov
@ 2024-08-14 16:35 ` Yury Norov
2024-08-28 14:09 ` Yury Norov
0 siblings, 1 reply; 14+ messages in thread
From: Yury Norov @ 2024-08-14 16:35 UTC (permalink / raw)
To: linux-kernel
Cc: Chen Yu, Christophe JAILLET, Leonardo Bras, Ingo Molnar,
Peter Zijlstra, Juri Lelli, Vincent Guittot, Dietmar Eggemann,
Steven Rostedt, Ben Segall, Mel Gorman, Valentin Schneider
Ping?
On Wed, Aug 07, 2024 at 12:05:19PM -0700, Yury Norov wrote:
> The function may call cpumask_equal with tl->mask(cpu) == tl->mask(i),
> even when cpu != i. In such case, cpumask_equal() would always return
> true, and we can proceed to the next iteration immediately.
>
> Valentin Schneider shares on it:
>
> PKG can potentially hit that condition, and so can any
> sched_domain_mask_f that relies on the node masks...
>
> I'm thinking ideally we should have checks in place to
> ensure all node_to_cpumask_map[] masks are disjoint,
> then we could entirely skip the levels that use these
> masks in topology_span_sane(), but there's unfortunately
> no nice way to flag them... Also there would be cases
> where there's no real difference between PKG and NODE
> other than NODE is still based on a per-cpu cpumask and
> PKG isn't, so I don't see a nicer way to go about this.
>
> v1: https://lore.kernel.org/lkml/ZrJk00cmVaUIAr4G@yury-ThinkPad/T/
> v2:
> - defer initialization of 'mc' in patch #1 @Chen Yu;
> - more comments from Valentin Schneider.
>
>
> Yury Norov (2):
> sched/topology: pre-compute topology_span_sane() loop params
> sched/topology: optimize topology_span_sane()
>
> kernel/sched/topology.c | 20 ++++++++++++++++++--
> 1 file changed, 18 insertions(+), 2 deletions(-)
>
> --
> 2.43.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 0/2] sched/topology: optimize topology_span_sane()
2024-08-14 16:35 ` Yury Norov
@ 2024-08-28 14:09 ` Yury Norov
2024-08-29 6:11 ` Christophe JAILLET
0 siblings, 1 reply; 14+ messages in thread
From: Yury Norov @ 2024-08-28 14:09 UTC (permalink / raw)
To: linux-kernel
Cc: Chen Yu, Christophe JAILLET, Leonardo Bras, Ingo Molnar,
Peter Zijlstra, Juri Lelli, Vincent Guittot, Dietmar Eggemann,
Steven Rostedt, Ben Segall, Mel Gorman, Valentin Schneider
Ping again?
On Wed, Aug 14, 2024 at 09:35:04AM -0700, Yury Norov wrote:
> Ping?
>
> On Wed, Aug 07, 2024 at 12:05:19PM -0700, Yury Norov wrote:
> > The function may call cpumask_equal with tl->mask(cpu) == tl->mask(i),
> > even when cpu != i. In such case, cpumask_equal() would always return
> > true, and we can proceed to the next iteration immediately.
> >
> > Valentin Schneider shares on it:
> >
> > PKG can potentially hit that condition, and so can any
> > sched_domain_mask_f that relies on the node masks...
> >
> > I'm thinking ideally we should have checks in place to
> > ensure all node_to_cpumask_map[] masks are disjoint,
> > then we could entirely skip the levels that use these
> > masks in topology_span_sane(), but there's unfortunately
> > no nice way to flag them... Also there would be cases
> > where there's no real difference between PKG and NODE
> > other than NODE is still based on a per-cpu cpumask and
> > PKG isn't, so I don't see a nicer way to go about this.
> >
> > v1: https://lore.kernel.org/lkml/ZrJk00cmVaUIAr4G@yury-ThinkPad/T/
> > v2:
> > - defer initialization of 'mc' in patch #1 @Chen Yu;
> > - more comments from Valentin Schneider.
> >
> >
> > Yury Norov (2):
> > sched/topology: pre-compute topology_span_sane() loop params
> > sched/topology: optimize topology_span_sane()
> >
> > kernel/sched/topology.c | 20 ++++++++++++++++++--
> > 1 file changed, 18 insertions(+), 2 deletions(-)
> >
> > --
> > 2.43.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 0/2] sched/topology: optimize topology_span_sane()
2024-08-28 14:09 ` Yury Norov
@ 2024-08-29 6:11 ` Christophe JAILLET
2024-08-29 13:18 ` Yury Norov
0 siblings, 1 reply; 14+ messages in thread
From: Christophe JAILLET @ 2024-08-29 6:11 UTC (permalink / raw)
To: Yury Norov, linux-kernel
Cc: Chen Yu, Leonardo Bras, Ingo Molnar, Peter Zijlstra, Juri Lelli,
Vincent Guittot, Dietmar Eggemann, Steven Rostedt, Ben Segall,
Mel Gorman, Valentin Schneider
Le 28/08/2024 à 16:09, Yury Norov a écrit :
> Ping again?
>
Hi,
The covert letter is v2, but the patch below it are without v2.
In patch 1/2, the Suggested-by: tags in v1 have been removed in this new
version :(.
CJ
> On Wed, Aug 14, 2024 at 09:35:04AM -0700, Yury Norov wrote:
>> Ping?
>>
>> On Wed, Aug 07, 2024 at 12:05:19PM -0700, Yury Norov wrote:
>>> The function may call cpumask_equal with tl->mask(cpu) == tl->mask(i),
>>> even when cpu != i. In such case, cpumask_equal() would always return
>>> true, and we can proceed to the next iteration immediately.
>>>
>>> Valentin Schneider shares on it:
>>>
>>> PKG can potentially hit that condition, and so can any
>>> sched_domain_mask_f that relies on the node masks...
>>>
>>> I'm thinking ideally we should have checks in place to
>>> ensure all node_to_cpumask_map[] masks are disjoint,
>>> then we could entirely skip the levels that use these
>>> masks in topology_span_sane(), but there's unfortunately
>>> no nice way to flag them... Also there would be cases
>>> where there's no real difference between PKG and NODE
>>> other than NODE is still based on a per-cpu cpumask and
>>> PKG isn't, so I don't see a nicer way to go about this.
>>>
>>> v1: https://lore.kernel.org/lkml/ZrJk00cmVaUIAr4G@yury-ThinkPad/T/
>>> v2:
>>> - defer initialization of 'mc' in patch #1 @Chen Yu;
>>> - more comments from Valentin Schneider.
>>>
>>>
>>> Yury Norov (2):
>>> sched/topology: pre-compute topology_span_sane() loop params
>>> sched/topology: optimize topology_span_sane()
>>>
>>> kernel/sched/topology.c | 20 ++++++++++++++++++--
>>> 1 file changed, 18 insertions(+), 2 deletions(-)
>>>
>>> --
>>> 2.43.0
>
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 0/2] sched/topology: optimize topology_span_sane()
2024-08-29 6:11 ` Christophe JAILLET
@ 2024-08-29 13:18 ` Yury Norov
0 siblings, 0 replies; 14+ messages in thread
From: Yury Norov @ 2024-08-29 13:18 UTC (permalink / raw)
To: Christophe JAILLET
Cc: linux-kernel, Chen Yu, Leonardo Bras, Ingo Molnar,
Peter Zijlstra, Juri Lelli, Vincent Guittot, Dietmar Eggemann,
Steven Rostedt, Ben Segall, Mel Gorman, Valentin Schneider
On Thu, Aug 29, 2024 at 08:11:41AM +0200, Christophe JAILLET wrote:
> Le 28/08/2024 à 16:09, Yury Norov a écrit :
> > Ping again?
> >
>
> Hi,
>
> The covert letter is v2, but the patch below it are without v2.
>
> In patch 1/2, the Suggested-by: tags in v1 have been removed in this new
> version :(.
My bad. I'll send v3.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2024-08-29 13:18 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-10 21:33 [PATCH v2 0/2] sched/topology: Optimize topology_span_sane() Kyle Meyer
2024-04-10 21:33 ` [PATCH v2 1/2] cpumask: Add for_each_cpu_from() Kyle Meyer
2024-04-15 11:50 ` Valentin Schneider
2024-04-10 21:33 ` [PATCH v2 2/2] sched/topology: Optimize topology_span_sane() Kyle Meyer
2024-04-11 10:38 ` Andy Shevchenko
2024-04-11 21:55 ` Kyle Meyer
2024-04-12 14:25 ` Andy Shevchenko
2024-04-13 17:42 ` Yury Norov
2024-04-15 11:50 ` Valentin Schneider
2024-08-07 19:05 [PATCH v2 0/2] sched/topology: optimize topology_span_sane() Yury Norov
2024-08-14 16:35 ` Yury Norov
2024-08-28 14:09 ` Yury Norov
2024-08-29 6:11 ` Christophe JAILLET
2024-08-29 13:18 ` Yury Norov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®