[Devel] [PATCH RH7 v2 0/2] fixes for memory cgroup id refcounting

Pavel Tikhomirov ptikhomirov at virtuozzo.com
Tue Jul 11 08:42:55 MSK 2023



On 11.07.2023 12:32, Pavel Tikhomirov wrote:
> Complete memcg id refcount design:
> 
> - on cgroup online get css refcount and set memcg id refctount to 1
> - on cgroup offline put memcg id refcount
> - on swapout:
>    - if cgroup memcg id refcount is 0 (not online), use parent cgroup
>    - if cgroup memcg id refcount is >0, get it
>    (previously in rh7 we got css refcount instead)
> - on swapin put memcg id refcount
>    (previously in rh7 we put css refcount instead)
> - on charge move from one to another cgroup put memcg id refctount on
> "from" cgroup and get it on "to" cgroup
> (previously in rh7 we put css refcount on "from" and get on "to")
> - on last memcg id refctount put also put css refcount
> 
> Charge move is a bit tricky as we can move swap -> non-swap, thus we get
> "to" memcg id refcount in mem_cgroup_move_charge_pte_range, and put
> "from" memcg id refcount later in __mem_cgroup_clear_mc.

The part about "swap -> non-swap" is wrong, rewrite of this paragraph:

Charge move is a bit tricky: we get "to" memcg id refcount in
mem_cgroup_move_charge_pte_range, and put "from" memcg id refcount later
in __mem_cgroup_clear_mc.

> 
> So, in the first patch of this series we remove leftover memcg id
> refcount put on memcg free path, and in the second patch we remove
> leftover "to" css refcount get in task move code for moved swap.
> 
> https://jira.vzint.dev/browse/PSBM-148818
> Signed-off-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
> 
> Pavel Tikhomirov (2):
>    mm/memcontrol: remove excess put of memory cgroup id refcount on css
>      free
>    mm/memcontrol: remove excess css_get on task migration with swap
> 
>   mm/memcontrol.c | 14 --------------
>   1 file changed, 14 deletions(-)
> 

-- 
Best regards, Tikhomirov Pavel
Senior Software Developer, Virtuozzo.


More information about the Devel mailing list