All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vincent Guittot <vincent.guittot@linaro.org>
To: Tim Chen <tim.c.chen@linux.intel.com>
Cc: mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com,
	dietmar.eggemann@arm.com, rostedt@goodmis.org,
	bsegall@google.com, mgorman@suse.de, bristot@redhat.com,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 0/5] Improve newidle lb cost tracking and early abort
Date: Wed, 27 Oct 2021 10:49:35 +0200	[thread overview]
Message-ID: <CAKfTPtAv7vPGYAwUSmGL5wtbY=if8G+3geWMKpHu3vLGqthPfg@mail.gmail.com> (raw)
In-Reply-To: <7128695d64e9161637b67315b5beb51c4accdc82.camel@linux.intel.com>

On Tue, 26 Oct 2021 at 19:25, Tim Chen <tim.c.chen@linux.intel.com> wrote:
>
> On Tue, 2021-10-19 at 14:35 +0200, Vincent Guittot wrote:
> > This patchset updates newidle lb cost tracking and early abort:
> >
> > The time spent running update_blocked_averages is now accounted in
> > the 1st
> > sched_domain level. This time can be significant and move the cost of
> > newidle lb above the avg_idle time.
> >
> > The decay of max_newidle_lb_cost is modified to start only when the
> > field
> > has not been updated for a while. Recent update will not be decayed
> > immediatlybut only after a while.
> >
> > The condition of an avg_idle lower than sysctl_sched_migration_cost
> > has
> > been removed as the 500us value is quite large and prevent
> > opportunity to
> > pull task on the newly idle CPU for at least 1st domain levels.
> >
> > Monitoring sd->max_newidle_lb_cost on cpu0 of a Arm64 system
> > THX2 (2 nodes * 28 cores * 4 cpus) during the benchmarks gives the
> > following results:
> >        min    avg   max
> > SMT:   1us   33us  273us - this one includes the update of blocked
> > load
> > MC:    7us   49us  398us
> > NUMA: 10us   45us  158us
> >
> >
> > Some results for hackbench -l $LOOPS -g $group :
> > group      tip/sched/core     + this patchset
> > 1           15.189(+/- 2%)       14.987(+/- 2%)  +1%
> > 4            4.336(+/- 3%)        4.322(+/- 5%)  +0%
> > 16           3.654(+/- 1%)        2.922(+/- 3%) +20%
> > 32           3.209(+/- 1%)        2.919(+/- 3%)  +9%
> > 64           2.965(+/- 1%)        2.826(+/- 1%)  +4%
> > 128          2.954(+/- 1%)        2.993(+/- 8%)  -1%
> > 256          2.951(+/- 1%)        2.894(+/- 1%)  +2%
> >
> > tbench and reaim have not shown any difference
> >
>
> Vincent,
>
> Our benchmark team tested the patches for our OLTP benchmark
> on a 2 socket Cascade Lake
> with 28 cores/socket.  It is a smaller configuration
> than the 2 socket Ice Lake we hae tested previously that has 40
> cores/socket so the overhead on update_blocked_averages is smaller
> (~4%).
>
> Here's a summary of the results:
>                                         Relative Performance
>                                         (higher better)
> 5.15 rc4 vanilla (cgroup disabled)      100%
> 5.15 rc4 vanilla (cgroup enabled)       96%
> patch v2                                96%
> patch v3                                96%
>
> We didn't see much change in performance from the patch set.

Thanks for testing.
I was not expecting this patch to fix all your problems but at least
those which have been highlighted during previous exchanges.

Few problems still remain in your case if I'm not wrong:
There is a patch that ensures that rq->next_balance is never set in the past.
IIRC, you also mentioned in a previous thread that the idle LB
happening during the tick just after the new idle balance was a
problem in your case. Which is probably linked to your figures below

>
> Looking at the profile on update_blocked_averages a bit more,
> the majority of the call to update_blocked_averages
> happens in run_rebalance_domain.  And we are not
> including that cost of update_blocked_averages for
> run_rebalance_domains in our current patch set. I think
> the patch set should account for that too.

nohz_newidle_balance keeps using sysctl_sched_migration_cost to
trigger a _nohz_idle_balance(cpu_rq(cpu), NOHZ_STATS_KICK, CPU_IDLE);
This would probably benefit to take into account the cost of
update_blocked_averages instead

>
>
>       0.60%     0.00%             3  [kernel.vmlinux]    [k] run_rebalance_domains                                                                                                                                                  -      -
>             |
>              --0.59%--run_rebalance_domains
>                        |
>                         --0.57%--update_blocked_averages
>
> Thanks.
>
> Tim
>

  reply	other threads:[~2021-10-27  8:49 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-19 12:35 [PATCH v3 0/5] Improve newidle lb cost tracking and early abort Vincent Guittot
2021-10-19 12:35 ` [PATCH v3 1/5] sched/fair: Account update_blocked_averages in newidle_balance cost Vincent Guittot
2021-10-21  9:43   ` Mel Gorman
2021-10-31 10:16   ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2021-10-19 12:35 ` [PATCH v3 2/5] sched/fair: Skip update_blocked_averages if we are defering load balance Vincent Guittot
2021-10-21  9:44   ` Mel Gorman
2021-10-21 12:45     ` Vincent Guittot
2021-10-31 10:16   ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2021-10-19 12:35 ` [PATCH 3/5] sched/fair: Wait before decaying max_newidle_lb_cost Vincent Guittot
2021-10-21  9:45   ` Mel Gorman
2021-10-29 10:01   ` Dietmar Eggemann
2021-10-29 12:19     ` Vincent Guittot
2021-10-31 10:16   ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2021-10-19 12:35 ` [PATCH v3 4/5] sched/fair: Remove sysctl_sched_migration_cost condition Vincent Guittot
2021-10-21  9:46   ` Mel Gorman
2021-10-29 10:01   ` Dietmar Eggemann
2021-10-29 12:30     ` Vincent Guittot
2021-10-31 10:16   ` [tip: sched/core] " tip-bot2 for Vincent Guittot
2021-10-19 12:35 ` [PATCH v3 5/5] sched/fair: cleanup newidle_balance Vincent Guittot
2021-10-21  9:46   ` Mel Gorman
2021-10-31 10:16   ` [tip: sched/core] sched/fair: Cleanup newidle_balance tip-bot2 for Vincent Guittot
2021-10-21  9:52 ` [PATCH v3 0/5] Improve newidle lb cost tracking and early abort Mel Gorman
2021-10-21 12:42   ` Vincent Guittot
2021-10-26 17:25 ` Tim Chen
2021-10-27  8:49   ` Vincent Guittot [this message]
2021-10-27 20:53     ` Tim Chen
2021-10-28 12:15       ` Vincent Guittot
2021-10-28 21:36         ` Tim Chen
2021-10-29 17:00     ` Tim Chen
2021-10-31 10:18       ` Vincent Guittot
2021-10-28 23:25 ` Joel Fernandes
2021-10-29  7:49   ` Vincent Guittot
2021-10-29 19:37     ` Joel Fernandes
2021-10-29 10:01 ` Dietmar Eggemann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAKfTPtAv7vPGYAwUSmGL5wtbY=if8G+3geWMKpHu3vLGqthPfg@mail.gmail.com' \
    --to=vincent.guittot@linaro.org \
    --cc=bristot@redhat.com \
    --cc=bsegall@google.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=juri.lelli@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mgorman@suse.de \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tim.c.chen@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.