On Fri, Jan 08, 2021 at 07:58:13AM -0800, Shakeel Butt wrote: > This patch adds swapcache stat for the cgroup v2. The swapcache > represents the memory that is accounted against both the memory and the > swap limit of the cgroup. The main motivation behind exposing the > swapcache stat is for enabling users to gracefully migrate from cgroup > v1's memsw counter to cgroup v2's memory and swap counters. > > Cgroup v1's memsw limit allows users to limit the memory+swap usage of a > workload but without control on the exact proportion of memory and swap. > Cgroup v2 provides separate limits for memory and swap which enables > more control on the exact usage of memory and swap individually for the > workload. > > With some little subtleties, the v1's memsw limit can be switched with > the sum of the v2's memory and swap limits. However the alternative for > memsw usage is not yet available in cgroup v2. Exposing per-cgroup > swapcache stat enables that alternative. Adding the memory usage and > swap usage and subtracting the swapcache will approximate the memsw > usage. This will help in the transparent migration of the workloads > depending on memsw usage and limit to v2' memory and swap counters. > > The reasons these applications are still interested in this approximate > memsw usage are: (1) these applications are not really interested in two > separate memory and swap usage metrics. A single usage metric is more > simple to use and reason about for them. > > (2) The memsw usage metric hides the underlying system's swap setup from > the applications. Applications with multiple instances running in a > datacenter with heterogeneous systems (some have swap and some don't) > will keep seeing a consistent view of their usage. > > Signed-off-by: Shakeel Butt <shakeelb@xxxxxxxxxx> > Acked-by: Michal Hocko <mhocko@xxxxxxxx> Reviewed-by: Roman Gushchin <guro@xxxxxx> Thanks!