Re: [PATCH v2 1/2] memcg: switch lruvec stats to rstat

From: Huang, Ying
Date: Mon Jul 05 2021 - 01:30:45 EST


Hi, Shakeel,

Shakeel Butt <shakeelb@xxxxxxxxxx> writes:

> The commit 2d146aa3aa84 ("mm: memcontrol: switch to rstat") but skipped
> the conversion of the lruvec stats as such stats are read in the
> performance critical code paths and flushing stats may have impacted the
> performances of the applications. This patch converts the lruvec stats
> to rstat and later patch adds the periodic flushing of the stats and
> thus remove the need to synchronously flushing the stats in the
> performance critical code paths.
>
> The rstat conversion comes with the price i.e. memory cost. Effectively
> this patch reverts the savings done by the commit f3344adf38bd ("mm:
> memcontrol: optimize per-lruvec stats counter memory usage"). However
> this cost is justified due to negative impact of the inaccurate lruvec
> stats on many heuristics. One such case is reported in [1].
>
> The memory reclaim code is filled with plethora of heuristics and many
> of those heuristics reads the lruvec stats. So, inaccurate stats can
> make such heuristics ineffective. [1] reports the impact of inaccurate
> lruvec stats on the "cache trim mode" heuristic. Inaccurate lruvec stats
> can impact the deactivation and aging anon heuristics as well.
>
> [1] https://lore.kernel.org/linux-mm/20210311004449.1170308-1-ying.huang@xxxxxxxxx/

Sorry for late reply. I have just verified that this patchset can
resolve the problem as in the above link for me. Thanks!

Best Regards,
Huang, Ying

> Signed-off-by: Shakeel Butt <shakeelb@xxxxxxxxxx>
> ---
> Changes since v1:
> - no changes
>