On Thu, Jan 11, 2024 at 08:24:51PM +0800, Zhiguo Jiang wrote:It seems that the actual memcg's lruvec->anon_cost/file_cost values are not used in code exclude target_memcg ?
The values of struct scan_control's members obtained byYou don't seem to understand how cgroup reclaim works.
prepare_scan_control() are always from root_mem_cgroup, rather than
the memcg where the shrinked folio is actually located, such as
sc->anon_cost, sc->file_cost, sc->may_deactivate and so on. This is
an inaccurate sc values for the actual situation of the current
shrinking memcg. so we need fix the values of struct scan_control's
members are corresponding to the current shrinking memcg.
Nacked-by: Johannes Weiner <hannes@xxxxxxxxxxx>