forked from Minki/linux
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
@ -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…
Reference in New Issue
Block a user