mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
mm/vmscan: delay waking of tasks throttled on NOPROGRESS
Tracing indicates that tasks throttled on NOPROGRESS are woken prematurely resulting in occasional massive spikes in direct reclaim activity. This patch wakes tasks throttled on NOPROGRESS if reclaim efficiency is at least 12%. Link: https://lkml.kernel.org/r/20211022144651.19914-9-mgorman@techsingularity.net Signed-off-by: Mel Gorman <mgorman@techsingularity.net> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: Andreas Dilger <adilger.kernel@dilger.ca> Cc: "Darrick J . Wong" <djwong@kernel.org> Cc: Dave Chinner <david@fromorbit.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Matthew Wilcox <willy@infradead.org> Cc: Michal Hocko <mhocko@suse.com> Cc: NeilBrown <neilb@suse.de> Cc: Rik van Riel <riel@surriel.com> Cc: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
a19594ca4a
commit
66ce520bb7
1 changed files with 5 additions and 2 deletions
|
@ -3348,8 +3348,11 @@ static inline bool compaction_ready(struct zone *zone, struct scan_control *sc)
|
|||
|
||||
static void consider_reclaim_throttle(pg_data_t *pgdat, struct scan_control *sc)
|
||||
{
|
||||
/* If reclaim is making progress, wake any throttled tasks. */
|
||||
if (sc->nr_reclaimed) {
|
||||
/*
|
||||
* If reclaim is making progress greater than 12% efficiency then
|
||||
* wake all the NOPROGRESS throttled tasks.
|
||||
*/
|
||||
if (sc->nr_reclaimed > (sc->nr_scanned >> 3)) {
|
||||
wait_queue_head_t *wqh;
|
||||
|
||||
wqh = &pgdat->reclaim_wait[VMSCAN_THROTTLE_NOPROGRESS];
|
||||
|
|
Loading…
Add table
Reference in a new issue