Re: [PATCH 2/3] sched/fair: Use HK_TYPE_SCHED housekeeping CPUs

From: Waiman Long
Date: Fri Sep 06 2024 - 12:32:39 EST


On 9/6/24 08:53, Frederic Weisbecker wrote:
Le Wed, Sep 04, 2024 at 10:54:15AM -0400, Waiman Long a écrit :
On 9/3/24 09:53, Waiman Long wrote:
On 9/3/24 09:12, Frederic Weisbecker wrote:
Le Sun, Aug 18, 2024 at 07:45:19PM -0400, Waiman Long a écrit :
As the previous commit has enabled the setting of HK_TYPE_SCHED
housekeeping CPUs in nohz_full setup, we can now use the more aptly
named HK_TYPE_SCHED housekeeping CPUs instead of HK_TYPE_MISC.

Signed-off-by: Waiman Long <longman@xxxxxxxxxx>
Can we instead merge HK_FLAG_TICK, HK_FLAG_WQ, HK_FLAG_TIMER,
HK_FLAG_RCU,
HK_FLAG_MISC and HK_FLAG_KTHREAD into a single
HK_FLAG_KERNEL_NOISE / HK_TYPE_KERNEL_NOISE ?
Sure. I am open to new name as I am not good on that.
HK_FLAG_KERNEL_NOISE does make sense.
I can't merge HK_FLAG_TICK just yet as it can be independently set by using
isolcpus which can set just HK_TYPE_TICK, HK_TYPE_DOMAIN or
HK_TYPE_MANAGED_IRQ. That is the reason why they are still separate.
Ah I think we really need to unify behaviours of isolcpus=nohz and nohz_full=

diff --git a/kernel/sched/isolation.c b/kernel/sched/isolation.c
index 5891e715f00d..9bc8fbf326cc 100644
--- a/kernel/sched/isolation.c
+++ b/kernel/sched/isolation.c
@@ -212,7 +212,8 @@ static int __init housekeeping_isolcpus_setup(char *str)
while (isalpha(*str)) {
if (!strncmp(str, "nohz,", 5)) {
str += 5;
- flags |= HK_FLAG_TICK;
+ flags |= HK_FLAG_TICK | HK_FLAG_WQ | HK_FLAG_TIMER | HK_FLAG_RCU |
+ HK_FLAG_MISC | HK_FLAG_KTHREAD;
continue;
}

I am not against it, but it is a change in userspace behavior. How about we introduce "isolcpus=nohz_full" option that essentially combines isolcpus and nohz_full in one option? That can be a separate patch.

Cheers,
Longman