2023-12-12 02:54:53

by wangxiaoming321

[permalink] [raw]
Subject: [PATCH] kernel/cpu: The number of CPUHP_AP_ONLINE_DYN (30) is too small that stops the new dynamic states hotplug.

144: perf/x86/cstate:online
159: workqueue:online
160: RCU/tree:online
161: mm/writeback:online
162: mm/vmstat:online
163: padata:online
164: x86/intel/epb:online
165: mm/compaction:online
166: block/mq:online
167: umwait:online
168: x86/msr:online
169: x86/cpuid:online
170: lib/percpu_cnt:online
171: idle/intel:online
172: acpi/cpu-drv:online
173: base/cacheinfo:online
174: x86/therm:online
175: cpufreq:online
176: x86/mce:online
177: x86/microcode:online
178: x86/resctrl/cat:online:
179: printk:online
180: trace/hwlat:online
181: trace/osnoise:online
182: perf/x86/intel/i915:online
184: driver/dma/idxd/perf:online
185: platform/x86/isst-if:online
186: hwmon/coretemp:online
187: thermal/intel_powerclamp:online
188: thermal/x86_pkg:online
189: platform/x86/uncore-freq:online
190: powercap/rapl:online
191: ia64/sep5:online
193: x86/kvm/clk:online
195: online

It needs to enlarge the number of dynamic states.

Signed-off-by: wangxiaoming321 <[email protected]>
---
include/linux/cpuhotplug.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h
index efc0c0b07efb..c88a58c363f1 100644
--- a/include/linux/cpuhotplug.h
+++ b/include/linux/cpuhotplug.h
@@ -251,7 +251,7 @@ enum cpuhp_state {
CPUHP_AP_RCUTREE_ONLINE,
CPUHP_AP_BASE_CACHEINFO_ONLINE,
CPUHP_AP_ONLINE_DYN,
- CPUHP_AP_ONLINE_DYN_END = CPUHP_AP_ONLINE_DYN + 30,
+ CPUHP_AP_ONLINE_DYN_END = CPUHP_AP_ONLINE_DYN + 40,
/* Must be after CPUHP_AP_ONLINE_DYN for node_states[N_CPU] update */
CPUHP_AP_MM_DEMOTION_ONLINE,
CPUHP_AP_X86_HPET_ONLINE,
--
2.25.1


2023-12-15 19:39:59

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH] kernel/cpu: The number of CPUHP_AP_ONLINE_DYN (30) is too small that stops the new dynamic states hotplug.

On Tue, Dec 12 2023 at 10:52, wangxiaoming321 wrote:

The subject line has a two issues:

1) the prefix is wrong. See
https://www.kernel.org/doc/html/latest/process/maintainer-tip.html#patch-subject

You find further information about changelogs there and in other
parts of the documentation

2) The sentence is too long and incomprehensible.

> 144: perf/x86/cstate:online
...
> 195: online

I have no idea what this number salad is trying to tell me. Changelogs
need to explain the problem they are trying to solve. This listing of
hotplug states is not an explanation and completely useless as it even
contains an entry which do not exist:

> 191: ia64/sep5:online

Even if it would exist a ia64 hotplug callback is hardly relevant on x86,
right?

Also the fixed entries e.g. workqueue and RCU/tree are irrelevant for
what you are trying to describe.

So what you really want to say is something like this:

cpu/hotplug: Increase the number of dynamic states

The dynamically allocatable hotplug state space can be exhausted by
the existing drivers and infrastructure which install CPU hotplug
states dynamically. That prevents new drivers and infrastructure from
installing dynamically allocated states.

Increase the size of the CPUHP_AP_ONLINE_DYN state by 10 to make
room.

At least that's what I oracled out of your "changelog". Hmm?

Thanks,

tglx



2023-12-19 03:30:19

by wangxiaoming321

[permalink] [raw]
Subject: RE: [PATCH] kernel/cpu: The number of CPUHP_AP_ONLINE_DYN (30) is too small that stops the new dynamic states hotplug.

Thank you for your response Thomas!

You get my opinion exactly.
I will modify the patch under your guide.

> 191: ia64/sep5:online
I do not know what this dynamical state mean either.
Maybe this is an irregular naming driver for X86.

I list them by cat /sys/devices/system/cpu/hotplug/states | grep online
And find the dynamical state is over 30.
So I think it need to enlarge the room for dynamic states.
Do you think this make sense?

-----Original Message-----
From: Thomas Gleixner <[email protected]>
Sent: Saturday, December 16, 2023 3:40 AM
To: Wang, Xiaoming <[email protected]>; [email protected]; [email protected]
Cc: Wang, Xiaoming <[email protected]>
Subject: Re: [PATCH] kernel/cpu: The number of CPUHP_AP_ONLINE_DYN (30) is too small that stops the new dynamic states hotplug.

On Tue, Dec 12 2023 at 10:52, wangxiaoming321 wrote:

The subject line has a two issues:

1) the prefix is wrong. See
https://www.kernel.org/doc/html/latest/process/maintainer-tip.html#patch-subject

You find further information about changelogs there and in other
parts of the documentation

2) The sentence is too long and incomprehensible.

> 144: perf/x86/cstate:online
...
> 195: online

I have no idea what this number salad is trying to tell me. Changelogs need to explain the problem they are trying to solve. This listing of hotplug states is not an explanation and completely useless as it even contains an entry which do not exist:

> 191: ia64/sep5:online

Even if it would exist a ia64 hotplug callback is hardly relevant on x86, right?

Also the fixed entries e.g. workqueue and RCU/tree are irrelevant for what you are trying to describe.

So what you really want to say is something like this:

cpu/hotplug: Increase the number of dynamic states

The dynamically allocatable hotplug state space can be exhausted by
the existing drivers and infrastructure which install CPU hotplug
states dynamically. That prevents new drivers and infrastructure from
installing dynamically allocated states.

Increase the size of the CPUHP_AP_ONLINE_DYN state by 10 to make
room.

At least that's what I oracled out of your "changelog". Hmm?

Thanks,

tglx

Thanks
Xiaoming


2023-12-19 03:34:37

by wangxiaoming321

[permalink] [raw]
Subject: [PATCH] cpu/hotplug: Increase the number of dynamic states

The dynamically allocatable hotplug state space can be exhausted by
the existing drivers and infrastructure which install CPU hotplug
states dynamically. That prevents new drivers and infrastructure from
installing dynamically allocated states.

Increase the size of the CPUHP_AP_ONLINE_DYN state by 10 to make
room.

Signed-off-by: wangxiaoming321 <[email protected]>
---
include/linux/cpuhotplug.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h
index efc0c0b07efb..c88a58c363f1 100644
--- a/include/linux/cpuhotplug.h
+++ b/include/linux/cpuhotplug.h
@@ -251,7 +251,7 @@ enum cpuhp_state {
CPUHP_AP_RCUTREE_ONLINE,
CPUHP_AP_BASE_CACHEINFO_ONLINE,
CPUHP_AP_ONLINE_DYN,
- CPUHP_AP_ONLINE_DYN_END = CPUHP_AP_ONLINE_DYN + 30,
+ CPUHP_AP_ONLINE_DYN_END = CPUHP_AP_ONLINE_DYN + 40,
/* Must be after CPUHP_AP_ONLINE_DYN for node_states[N_CPU] update */
CPUHP_AP_MM_DEMOTION_ONLINE,
CPUHP_AP_X86_HPET_ONLINE,
--
2.25.1


2023-12-20 15:43:12

by tip-bot2 for Jacob Pan

[permalink] [raw]
Subject: [tip: smp/core] cpu/hotplug: Increase the number of dynamic states

The following commit has been merged into the smp/core branch of tip:

Commit-ID: fe22944cf05ede8e6f841cfecdb7093a53a3d9b3
Gitweb: https://git.kernel.org/tip/fe22944cf05ede8e6f841cfecdb7093a53a3d9b3
Author: xiaoming Wang <[email protected]>
AuthorDate: Tue, 19 Dec 2023 11:34:11 +08:00
Committer: Thomas Gleixner <[email protected]>
CommitterDate: Wed, 20 Dec 2023 16:25:15 +01:00

cpu/hotplug: Increase the number of dynamic states

The dynamically allocatable hotplug state space can be exhausted by
the existing drivers and infrastructure which install CPU hotplug
states dynamically. That prevents new drivers and infrastructure from
installing dynamically allocated states.

Increase the size of the CPUHP_AP_ONLINE_DYN state by 10 to make
room.

Signed-off-by: Xiaoming Wang <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
---
include/linux/cpuhotplug.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h
index af6c21a..8bd454d 100644
--- a/include/linux/cpuhotplug.h
+++ b/include/linux/cpuhotplug.h
@@ -239,7 +239,7 @@ enum cpuhp_state {
CPUHP_AP_RCUTREE_ONLINE,
CPUHP_AP_BASE_CACHEINFO_ONLINE,
CPUHP_AP_ONLINE_DYN,
- CPUHP_AP_ONLINE_DYN_END = CPUHP_AP_ONLINE_DYN + 30,
+ CPUHP_AP_ONLINE_DYN_END = CPUHP_AP_ONLINE_DYN + 40,
CPUHP_AP_X86_HPET_ONLINE,
CPUHP_AP_X86_KVM_CLK_ONLINE,
CPUHP_AP_ACTIVE,