Re: [PATCH v2] sched: Remove obscure comment from select_task_rq_fair
On Mon, May 28, 2018 at 09:15:08AM +0200, Peter Zijlstra wrote: > On Sun, May 27, 2018 at 06:24:47PM -0700, Joel Fernandes (Google) wrote: > > This patch removes the obscure comment which was > > saying this path can be entered only for wake-balance. > > The comment was meant to ask if we want to always do > select_idle_siblings() and not only on wakeups. Ok, thanks for the clarification. Makes sense, and sorry for the noise. thanks, - Joel
Re: [PATCH v2] sched: Remove obscure comment from select_task_rq_fair
On Mon, May 28, 2018 at 09:15:08AM +0200, Peter Zijlstra wrote: > On Sun, May 27, 2018 at 06:24:47PM -0700, Joel Fernandes (Google) wrote: > > This patch removes the obscure comment which was > > saying this path can be entered only for wake-balance. > > The comment was meant to ask if we want to always do > select_idle_siblings() and not only on wakeups. Ok, thanks for the clarification. Makes sense, and sorry for the noise. thanks, - Joel
Re: [PATCH v2] sched: Remove obscure comment from select_task_rq_fair
On Sun, May 27, 2018 at 06:24:47PM -0700, Joel Fernandes (Google) wrote: > This patch removes the obscure comment which was > saying this path can be entered only for wake-balance. The comment was meant to ask if we want to always do select_idle_siblings() and not only on wakeups.
Re: [PATCH v2] sched: Remove obscure comment from select_task_rq_fair
On Sun, May 27, 2018 at 06:24:47PM -0700, Joel Fernandes (Google) wrote: > This patch removes the obscure comment which was > saying this path can be entered only for wake-balance. The comment was meant to ask if we want to always do select_idle_siblings() and not only on wakeups.
[PATCH v2] sched: Remove obscure comment from select_task_rq_fair
I was playing with cpusets and sched_load_balance flag and notice that the fast-path (select_idle_sibling) can also be attempted for exec-balance, not just wake-balance if the waker cpu's cpuset has sched_load_balance = 0. This patch removes the obscure comment which was saying this path can be entered only for wake-balance. To trigger this, I just do: mkdir /cpuset mount -t cpuset none /cpuset echo 0 > sched_load_balance Then did some random activity and dumped the stack from 'if (!sd)' for the non wake-balance cases. Following is one of the stacks: dump_stack+0x46/0x5b select_task_rq_fair+0x101d/0x1030 sched_exec+0x4f/0xc0 do_execveat_common.isra.41+0x1e3/0x7c0 __x64_sys_execve+0x2d/0x40 do_syscall_64+0x43/0xf0 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Turns out the same case occurs also during boot up when kthreadd tries to create threads before domains are attached so lets fix the comment. Cc: Dietmar EggemannCc: Morten Ramussen Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Juri Lelli Cc: Vincent Guittot Cc: Patrick Bellasi Cc: Rohit Jain Cc: kernel-t...@android.com Signed-off-by: Joel Fernandes (Google) --- v1->v2: Resending without "XXX" in subject since otherwise LKML thinks its junk. kernel/sched/fair.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 54dc31e7ab9b..dd07794141d0 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6665,7 +6665,7 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int sd_flag, int wake_f if (!sd) { pick_cpu: - if (sd_flag & SD_BALANCE_WAKE) { /* XXX always ? */ + if (sd_flag & SD_BALANCE_WAKE) { new_cpu = select_idle_sibling(p, prev_cpu, new_cpu); if (want_affine) -- 2.17.0.921.gf22659ad46-goog
[PATCH v2] sched: Remove obscure comment from select_task_rq_fair
I was playing with cpusets and sched_load_balance flag and notice that the fast-path (select_idle_sibling) can also be attempted for exec-balance, not just wake-balance if the waker cpu's cpuset has sched_load_balance = 0. This patch removes the obscure comment which was saying this path can be entered only for wake-balance. To trigger this, I just do: mkdir /cpuset mount -t cpuset none /cpuset echo 0 > sched_load_balance Then did some random activity and dumped the stack from 'if (!sd)' for the non wake-balance cases. Following is one of the stacks: dump_stack+0x46/0x5b select_task_rq_fair+0x101d/0x1030 sched_exec+0x4f/0xc0 do_execveat_common.isra.41+0x1e3/0x7c0 __x64_sys_execve+0x2d/0x40 do_syscall_64+0x43/0xf0 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Turns out the same case occurs also during boot up when kthreadd tries to create threads before domains are attached so lets fix the comment. Cc: Dietmar Eggemann Cc: Morten Ramussen Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Juri Lelli Cc: Vincent Guittot Cc: Patrick Bellasi Cc: Rohit Jain Cc: kernel-t...@android.com Signed-off-by: Joel Fernandes (Google) --- v1->v2: Resending without "XXX" in subject since otherwise LKML thinks its junk. kernel/sched/fair.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 54dc31e7ab9b..dd07794141d0 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6665,7 +6665,7 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int sd_flag, int wake_f if (!sd) { pick_cpu: - if (sd_flag & SD_BALANCE_WAKE) { /* XXX always ? */ + if (sd_flag & SD_BALANCE_WAKE) { new_cpu = select_idle_sibling(p, prev_cpu, new_cpu); if (want_affine) -- 2.17.0.921.gf22659ad46-goog