All of lore.kernel.org
 help / color / mirror / Atom feed
* find_new_ilb
@ 2021-06-08 19:51 Julia Lawall
  2021-06-09  7:12 ` find_new_ilb Peter Zijlstra
  0 siblings, 1 reply; 6+ messages in thread
From: Julia Lawall @ 2021-06-08 19:51 UTC (permalink / raw)
  To: Ingo Molnar, Peter Zijlstra, Vincent Guittot, Dietmar Eggemann,
	Mel Gorman, linux-kernel

Starting from the following commit:

commit 45da7a2b0af8fa29dff2e6ba8926322068350fce
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Tue Aug 18 10:48:17 2020 +0200

    sched/fair: Exclude the current CPU from find_new_ilb()

up through Linux 5.12, I observed that often when most of the machine was
idle, there could be many (thousands) of sched_wake_idle_without_ipi
events, typically between cores 0 and 1.  I don't see this any more in
Linux v5.13-rc1.  I looked through the patches to fair.c and core.c
subsequent to v5.12, and I didn't see anything that explicitly addresses
this issue.  Before I plunge into another set of rounds of bisecting, I
wonder if anyone knows whether and how this problem was resolved?

thanks,
julia

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: find_new_ilb
  2021-06-08 19:51 find_new_ilb Julia Lawall
@ 2021-06-09  7:12 ` Peter Zijlstra
  2021-06-09  7:18   ` find_new_ilb Vincent Guittot
  2021-06-09  7:26   ` find_new_ilb Julia Lawall
  0 siblings, 2 replies; 6+ messages in thread
From: Peter Zijlstra @ 2021-06-09  7:12 UTC (permalink / raw)
  To: Julia Lawall
  Cc: Ingo Molnar, Vincent Guittot, Dietmar Eggemann, Mel Gorman, linux-kernel

On Tue, Jun 08, 2021 at 09:51:30PM +0200, Julia Lawall wrote:
> Starting from the following commit:
> 
> commit 45da7a2b0af8fa29dff2e6ba8926322068350fce
> Author: Peter Zijlstra <peterz@infradead.org>
> Date:   Tue Aug 18 10:48:17 2020 +0200
> 
>     sched/fair: Exclude the current CPU from find_new_ilb()
> 
> up through Linux 5.12, I observed that often when most of the machine was
> idle, there could be many (thousands) of sched_wake_idle_without_ipi
> events, typically between cores 0 and 1.  I don't see this any more in
> Linux v5.13-rc1.  I looked through the patches to fair.c and core.c
> subsequent to v5.12, and I didn't see anything that explicitly addresses
> this issue.  Before I plunge into another set of rounds of bisecting, I
> wonder if anyone knows whether and how this problem was resolved?

Hurmph.. that patch was preparation for a later change that never seems
to have happened. If it is causing trouble for you, I think you can
savely revert it.

At the time I thought it was very strange that new_idle would select
itself as idle-balancer, doubly so, because the only way to get there
would be with NEED_RESCHED already set, so the IPI wouldn't in fact do
anything.

Looking again, the difference is ofcourse that previously we'd select
self and NO-OP, but now we'll potentially select another CPU and
actually do something.

This is arguably an improvement, because we did want to do something.

 I can't quite remember what would've change here since, Vincent, can
 you remember?

Anyway, is this actually causing you trouble, or are you just going on
the increased number of events? 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: find_new_ilb
  2021-06-09  7:12 ` find_new_ilb Peter Zijlstra
@ 2021-06-09  7:18   ` Vincent Guittot
  2021-06-09  7:26     ` find_new_ilb Julia Lawall
  2021-06-09 13:04     ` find_new_ilb Julia Lawall
  2021-06-09  7:26   ` find_new_ilb Julia Lawall
  1 sibling, 2 replies; 6+ messages in thread
From: Vincent Guittot @ 2021-06-09  7:18 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Julia Lawall, Ingo Molnar, Dietmar Eggemann, Mel Gorman, linux-kernel

On Wed, 9 Jun 2021 at 09:12, Peter Zijlstra <peterz@infradead.org> wrote:
>
> On Tue, Jun 08, 2021 at 09:51:30PM +0200, Julia Lawall wrote:
> > Starting from the following commit:
> >
> > commit 45da7a2b0af8fa29dff2e6ba8926322068350fce
> > Author: Peter Zijlstra <peterz@infradead.org>
> > Date:   Tue Aug 18 10:48:17 2020 +0200
> >
> >     sched/fair: Exclude the current CPU from find_new_ilb()
> >
> > up through Linux 5.12, I observed that often when most of the machine was
> > idle, there could be many (thousands) of sched_wake_idle_without_ipi
> > events, typically between cores 0 and 1.  I don't see this any more in
> > Linux v5.13-rc1.  I looked through the patches to fair.c and core.c
> > subsequent to v5.12, and I didn't see anything that explicitly addresses
> > this issue.  Before I plunge into another set of rounds of bisecting, I
> > wonder if anyone knows whether and how this problem was resolved?
>
> Hurmph.. that patch was preparation for a later change that never seems
> to have happened. If it is causing trouble for you, I think you can
> savely revert it.
>
> At the time I thought it was very strange that new_idle would select
> itself as idle-balancer, doubly so, because the only way to get there
> would be with NEED_RESCHED already set, so the IPI wouldn't in fact do
> anything.
>
> Looking again, the difference is ofcourse that previously we'd select
> self and NO-OP, but now we'll potentially select another CPU and
> actually do something.
>
> This is arguably an improvement, because we did want to do something.
>
>  I can't quite remember what would've change here since, Vincent, can
>  you remember?

c6f886546cb8 ("sched/fair: Trigger the update of blocked load on newly
idle cpu") could be the one which fixes it.
We don't kick_ilb from newilde_balance() since this commit

>
> Anyway, is this actually causing you trouble, or are you just going on
> the increased number of events?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: find_new_ilb
  2021-06-09  7:12 ` find_new_ilb Peter Zijlstra
  2021-06-09  7:18   ` find_new_ilb Vincent Guittot
@ 2021-06-09  7:26   ` Julia Lawall
  1 sibling, 0 replies; 6+ messages in thread
From: Julia Lawall @ 2021-06-09  7:26 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Ingo Molnar, Vincent Guittot, Dietmar Eggemann, Mel Gorman, linux-kernel



On Wed, 9 Jun 2021, Peter Zijlstra wrote:

> On Tue, Jun 08, 2021 at 09:51:30PM +0200, Julia Lawall wrote:
> > Starting from the following commit:
> >
> > commit 45da7a2b0af8fa29dff2e6ba8926322068350fce
> > Author: Peter Zijlstra <peterz@infradead.org>
> > Date:   Tue Aug 18 10:48:17 2020 +0200
> >
> >     sched/fair: Exclude the current CPU from find_new_ilb()
> >
> > up through Linux 5.12, I observed that often when most of the machine was
> > idle, there could be many (thousands) of sched_wake_idle_without_ipi
> > events, typically between cores 0 and 1.  I don't see this any more in
> > Linux v5.13-rc1.  I looked through the patches to fair.c and core.c
> > subsequent to v5.12, and I didn't see anything that explicitly addresses
> > this issue.  Before I plunge into another set of rounds of bisecting, I
> > wonder if anyone knows whether and how this problem was resolved?
>
> Hurmph.. that patch was preparation for a later change that never seems
> to have happened. If it is causing trouble for you, I think you can
> savely revert it.
>
> At the time I thought it was very strange that new_idle would select
> itself as idle-balancer, doubly so, because the only way to get there
> would be with NEED_RESCHED already set, so the IPI wouldn't in fact do
> anything.
>
> Looking again, the difference is ofcourse that previously we'd select
> self and NO-OP, but now we'll potentially select another CPU and
> actually do something.
>
> This is arguably an improvement, because we did want to do something.
>
>  I can't quite remember what would've change here since, Vincent, can
>  you remember?
>
> Anyway, is this actually causing you trouble, or are you just going on
> the increased number of events?

Thanks for the feedback.  The scenarios I saw wouldn't have caused trouble
for anyone, because the machine was highly idle (maybe a couple of cores
in use).  And the problem seems to be gone as well in v5.13.

julia

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: find_new_ilb
  2021-06-09  7:18   ` find_new_ilb Vincent Guittot
@ 2021-06-09  7:26     ` Julia Lawall
  2021-06-09 13:04     ` find_new_ilb Julia Lawall
  1 sibling, 0 replies; 6+ messages in thread
From: Julia Lawall @ 2021-06-09  7:26 UTC (permalink / raw)
  To: Vincent Guittot
  Cc: Peter Zijlstra, Ingo Molnar, Dietmar Eggemann, Mel Gorman, linux-kernel



On Wed, 9 Jun 2021, Vincent Guittot wrote:

> On Wed, 9 Jun 2021 at 09:12, Peter Zijlstra <peterz@infradead.org> wrote:
> >
> > On Tue, Jun 08, 2021 at 09:51:30PM +0200, Julia Lawall wrote:
> > > Starting from the following commit:
> > >
> > > commit 45da7a2b0af8fa29dff2e6ba8926322068350fce
> > > Author: Peter Zijlstra <peterz@infradead.org>
> > > Date:   Tue Aug 18 10:48:17 2020 +0200
> > >
> > >     sched/fair: Exclude the current CPU from find_new_ilb()
> > >
> > > up through Linux 5.12, I observed that often when most of the machine was
> > > idle, there could be many (thousands) of sched_wake_idle_without_ipi
> > > events, typically between cores 0 and 1.  I don't see this any more in
> > > Linux v5.13-rc1.  I looked through the patches to fair.c and core.c
> > > subsequent to v5.12, and I didn't see anything that explicitly addresses
> > > this issue.  Before I plunge into another set of rounds of bisecting, I
> > > wonder if anyone knows whether and how this problem was resolved?
> >
> > Hurmph.. that patch was preparation for a later change that never seems
> > to have happened. If it is causing trouble for you, I think you can
> > savely revert it.
> >
> > At the time I thought it was very strange that new_idle would select
> > itself as idle-balancer, doubly so, because the only way to get there
> > would be with NEED_RESCHED already set, so the IPI wouldn't in fact do
> > anything.
> >
> > Looking again, the difference is ofcourse that previously we'd select
> > self and NO-OP, but now we'll potentially select another CPU and
> > actually do something.
> >
> > This is arguably an improvement, because we did want to do something.
> >
> >  I can't quite remember what would've change here since, Vincent, can
> >  you remember?
>
> c6f886546cb8 ("sched/fair: Trigger the update of blocked load on newly
> idle cpu") could be the one which fixes it.
> We don't kick_ilb from newilde_balance() since this commit

Thanks!  I'll check on that.

julia

>
> >
> > Anyway, is this actually causing you trouble, or are you just going on
> > the increased number of events?
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: find_new_ilb
  2021-06-09  7:18   ` find_new_ilb Vincent Guittot
  2021-06-09  7:26     ` find_new_ilb Julia Lawall
@ 2021-06-09 13:04     ` Julia Lawall
  1 sibling, 0 replies; 6+ messages in thread
From: Julia Lawall @ 2021-06-09 13:04 UTC (permalink / raw)
  To: Vincent Guittot
  Cc: Peter Zijlstra, Ingo Molnar, Dietmar Eggemann, Mel Gorman, linux-kernel



On Wed, 9 Jun 2021, Vincent Guittot wrote:

> On Wed, 9 Jun 2021 at 09:12, Peter Zijlstra <peterz@infradead.org> wrote:
> >
> > On Tue, Jun 08, 2021 at 09:51:30PM +0200, Julia Lawall wrote:
> > > Starting from the following commit:
> > >
> > > commit 45da7a2b0af8fa29dff2e6ba8926322068350fce
> > > Author: Peter Zijlstra <peterz@infradead.org>
> > > Date:   Tue Aug 18 10:48:17 2020 +0200
> > >
> > >     sched/fair: Exclude the current CPU from find_new_ilb()
> > >
> > > up through Linux 5.12, I observed that often when most of the machine was
> > > idle, there could be many (thousands) of sched_wake_idle_without_ipi
> > > events, typically between cores 0 and 1.  I don't see this any more in
> > > Linux v5.13-rc1.  I looked through the patches to fair.c and core.c
> > > subsequent to v5.12, and I didn't see anything that explicitly addresses
> > > this issue.  Before I plunge into another set of rounds of bisecting, I
> > > wonder if anyone knows whether and how this problem was resolved?
> >
> > Hurmph.. that patch was preparation for a later change that never seems
> > to have happened. If it is causing trouble for you, I think you can
> > savely revert it.
> >
> > At the time I thought it was very strange that new_idle would select
> > itself as idle-balancer, doubly so, because the only way to get there
> > would be with NEED_RESCHED already set, so the IPI wouldn't in fact do
> > anything.
> >
> > Looking again, the difference is ofcourse that previously we'd select
> > self and NO-OP, but now we'll potentially select another CPU and
> > actually do something.
> >
> > This is arguably an improvement, because we did want to do something.
> >
> >  I can't quite remember what would've change here since, Vincent, can
> >  you remember?
>
> c6f886546cb8 ("sched/fair: Trigger the update of blocked load on newly
> idle cpu") could be the one which fixes it.
> We don't kick_ilb from newilde_balance() since this commit

This is indeed the commit that fixes the problem.  Increasing the blocked
load did seem to be what was not getting done.

thanks,
julia

>
> >
> > Anyway, is this actually causing you trouble, or are you just going on
> > the increased number of events?
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-06-09 13:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-08 19:51 find_new_ilb Julia Lawall
2021-06-09  7:12 ` find_new_ilb Peter Zijlstra
2021-06-09  7:18   ` find_new_ilb Vincent Guittot
2021-06-09  7:26     ` find_new_ilb Julia Lawall
2021-06-09 13:04     ` find_new_ilb Julia Lawall
2021-06-09  7:26   ` find_new_ilb Julia Lawall

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.