[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210224133007.28644-1-vincent.guittot@linaro.org>
Date: Wed, 24 Feb 2021 14:30:00 +0100
From: Vincent Guittot <vincent.guittot@...aro.org>
To: mingo@...hat.com, peterz@...radead.org, juri.lelli@...hat.com,
dietmar.eggemann@....com, rostedt@...dmis.org, bsegall@...gle.com,
mgorman@...e.de, bristot@...hat.com, linux-kernel@...r.kernel.org,
joel@...lfernandes.org, valentin.schneider@....com
Cc: fweisbec@...il.com, tglx@...utronix.de, qais.yousef@....com,
Vincent Guittot <vincent.guittot@...aro.org>
Subject: [PATCH 0/7 v4] move update blocked load outside newidle_balance
Joel reported long preempt and irq off sequence in newidle_balance because
of a large number of CPU cgroups in use and having to be updated. This
patchset moves the update outside newidle_imblance. This enables to early
abort during the updates in case of pending irq as an example.
Instead of kicking a normal ILB that will wakes up CPU which is already
idle, patch 6 triggers the update of statistics in the idle thread of
the CPU before selecting and entering an idle state.
Changes on v4:
- Add a dedicated bit for updating blocked load when entering idle.
This simplifies the management of concurrency with kick_ilb.
Changes on v3:
- Fixed a compilation error for !CONFIG_SMP && CONFIG_NO_HZ_COMMON
reported by kernel test robot <lkp@...el.com>
- Took advantage of this new version to add a short desciption for
nohz_run_idle_balance
Changes on v2:
- Fixed some typos and updated some comments
- Added more cleanup
- Changed to way to trigger ILB in idle thread context to remove a possible
race condition between the normal softirq ILB and this new mecanism. The
cpu can already be set in idle_cpus_mask because even if the cpu is added
later when entering idle, it might not have been removed yet from previous
idle phase.
Vincent Guittot (7):
sched/fair: remove update of blocked load from newidle_balance
sched/fair: remove unused return of _nohz_idle_balance
sched/fair: remove unused parameter of update_nohz_stats
sched/fair: merge for each idle cpu loop of ILB
sched/fair: reorder newidle_balance pulled_task tests
sched/fair: trigger the update of blocked load on newly idle cpu
sched/fair: reduce the window for duplicated update
kernel/sched/core.c | 2 +-
kernel/sched/fair.c | 118 +++++++++++++++++--------------------------
kernel/sched/idle.c | 6 +++
kernel/sched/sched.h | 7 +++
4 files changed, 60 insertions(+), 73 deletions(-)
--
2.17.1
Powered by blists - more mailing lists