[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240902105959.1637-1-hdanton@sina.com>
Date: Mon, 2 Sep 2024 18:59:59 +0800
From: Hillf Danton <hdanton@...a.com>
To: Jingxiang Zeng <linuszeng@...cent.com>
Cc: Jingxiang Zeng <jingxiangzeng.cas@...il.com>,
linux-mm@...ck.org,
Yu Zhao <yuzhao@...gle.com>,
Kairui Song <kasong@...cent.com>,
Matthew Wilcox <willy@...radead.org>,
Michal Hocko <mhocko@...e.com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] mm/vmscan: wake up flushers conditionally to avoid cgroup OOM
On Thu, 29 Aug 2024 18:25:43 +0800 Jingxiang Zeng <jingxiangzeng.cas@...il.com> wrote:
>
> @@ -4919,6 +4920,14 @@ static void lru_gen_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc
> if (try_to_shrink_lruvec(lruvec, sc))
> lru_gen_rotate_memcg(lruvec, MEMCG_LRU_YOUNG);
>
> + /*
> + * If too many pages failed to evict due to page being dirty,
> + * memory pressure have pushed dirty pages to oldest gen,
> + * wake up flusher.
> + */
> + if (sc->nr.unqueued_dirty >= sc->nr.taken)
> + wakeup_flusher_threads(WB_REASON_VMSCAN);
> +
Because a) the right domain to processe dirty pages is writeback and b) flusher
runs independent of page reclaimer that has nothing to do with WB_REASON_SYNC,
feel free to erase WB_REASON_VMSCAN instead of adding it once more.
Powered by blists - more mailing lists