* [PATCH 1/1] mm/percpu.c: simplify grouping cpu logic in pcpu_build_alloc_info()
@ 2016-09-23 18:15 zijun_hu
2016-09-23 19:23 ` Tejun Heo
0 siblings, 1 reply; 2+ messages in thread
From: zijun_hu @ 2016-09-23 18:15 UTC (permalink / raw)
To: Tejun Heo, Andrew Morton; +Cc: zijun_hu, linux-mm, linux-kernel, cl
From: zijun_hu <zijun_hu@htc.com>
simplify grouping cpu logic in pcpu_build_alloc_info() to improve
readability and performance, it discards the goto statement too
for every possible cpu, decide whether it can share group id of any
lower index CPU, use the group id if so, otherwise a new group id
is allocated to it
Signed-off-by: zijun_hu <zijun_hu@htc.com>
---
mm/percpu.c | 28 +++++++++++++++-------------
1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/mm/percpu.c b/mm/percpu.c
index 9903830aaebb..fcaaac977954 100644
--- a/mm/percpu.c
+++ b/mm/percpu.c
@@ -1824,23 +1824,25 @@ static struct pcpu_alloc_info * __init pcpu_build_alloc_info(
max_upa = upa;
/* group cpus according to their proximity */
- for_each_possible_cpu(cpu) {
- group = 0;
- next_group:
+ group = 0;
+ for_each_possible_cpu(cpu)
for_each_possible_cpu(tcpu) {
- if (cpu == tcpu)
- break;
- if (group_map[tcpu] == group && cpu_distance_fn &&
- (cpu_distance_fn(cpu, tcpu) > LOCAL_DISTANCE ||
- cpu_distance_fn(tcpu, cpu) > LOCAL_DISTANCE)) {
+ if (tcpu == cpu) {
+ group_map[cpu] = group;
+ group_cnt[group] = 1;
group++;
- nr_groups = max(nr_groups, group + 1);
- goto next_group;
+ break;
+ }
+
+ if (!cpu_distance_fn ||
+ (cpu_distance_fn(cpu, tcpu) == LOCAL_DISTANCE &&
+ cpu_distance_fn(tcpu, cpu) == LOCAL_DISTANCE)) {
+ group_map[cpu] = group_map[tcpu];
+ group_cnt[group_map[cpu]]++;
+ break;
}
}
- group_map[cpu] = group;
- group_cnt[group]++;
- }
+ nr_groups = group;
/*
* Expand unit size until address space usage goes over 75%
--
1.9.1
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH 1/1] mm/percpu.c: simplify grouping cpu logic in pcpu_build_alloc_info()
2016-09-23 18:15 [PATCH 1/1] mm/percpu.c: simplify grouping cpu logic in pcpu_build_alloc_info() zijun_hu
@ 2016-09-23 19:23 ` Tejun Heo
0 siblings, 0 replies; 2+ messages in thread
From: Tejun Heo @ 2016-09-23 19:23 UTC (permalink / raw)
To: zijun_hu; +Cc: Andrew Morton, zijun_hu, linux-mm, linux-kernel, cl
On Sat, Sep 24, 2016 at 02:15:09AM +0800, zijun_hu wrote:
> From: zijun_hu <zijun_hu@htc.com>
>
> simplify grouping cpu logic in pcpu_build_alloc_info() to improve
> readability and performance, it discards the goto statement too
>
> for every possible cpu, decide whether it can share group id of any
> lower index CPU, use the group id if so, otherwise a new group id
> is allocated to it
>
> Signed-off-by: zijun_hu <zijun_hu@htc.com>
I'm not gonna change that code unless there are clear upsides. It's a
complicated code path which is run once during boot. It's not worth
optimizing, the author doesn't explain how the change has been tested
or verified and doesn't respond to people pointing out that these
drive-by patches aren't helpful.
I won't engage with his patches until he changes his approach and
think that it's advisable for others to do so too.
Nacked-by: Tejun Heo <tj@kernel.org>
Thanks.
--
tejun
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-09-23 19:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-23 18:15 [PATCH 1/1] mm/percpu.c: simplify grouping cpu logic in pcpu_build_alloc_info() zijun_hu
2016-09-23 19:23 ` Tejun Heo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox