lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Yq+H0v0/nuxPRLX+@castle>
Date:   Sun, 19 Jun 2022 13:32:18 -0700
From:   Roman Gushchin <roman.gushchin@...ux.dev>
To:     Muchun Song <songmuchun@...edance.com>
Cc:     hannes@...xchg.org, mhocko@...nel.org, shakeelb@...gle.com,
        akpm@...ux-foundation.org, cgroups@...r.kernel.org,
        linux-mm@...ck.org, linux-kernel@...r.kernel.org,
        duanxiongchun@...edance.com, longman@...hat.com
Subject: Re: [PATCH v5 09/11] mm: memcontrol: use obj_cgroup APIs to charge
 the LRU pages

On Mon, May 30, 2022 at 03:49:17PM +0800, Muchun Song wrote:
> We will reuse the obj_cgroup APIs to charge the LRU pages. Finally,
> page->memcg_data will have 2 different meanings.
> 
>   - For the slab pages, page->memcg_data points to an object cgroups
>     vector.
> 
>   - For the kmem pages (exclude the slab pages) and the LRU pages,
>     page->memcg_data points to an object cgroup.
> 
> In this patch, we reuse obj_cgroup APIs to charge LRU pages. In the end,
> The page cache cannot prevent long-living objects from pinning the original
> memory cgroup in the memory.
> 
> At the same time we also changed the rules of page and objcg or memcg
> binding stability. The new rules are as follows.
> 
> For a page any of the following ensures page and objcg binding stability:
> 
>   - the page lock
>   - LRU isolation
>   - lock_page_memcg()
>   - exclusive reference
> 
> Based on the stable binding of page and objcg, for a page any of the
> following ensures page and memcg binding stability:
> 
>   - objcg_lock
>   - cgroup_mutex
>   - the lruvec lock
>   - the split queue lock (only THP page)
> 
> If the caller only want to ensure that the page counters of memcg are
> updated correctly, ensure that the binding stability of page and objcg
> is sufficient.
> 
> Signed-off-by: Muchun Song <songmuchun@...edance.com>

Aside from two questions, which I raised in the comments to previous patches
in the series:
1) perf impact,
2) should we open-code the reparenting procedure to show the locking in a more
explicit ways?

Acked-by: Roman Gushchin <roman.gushchin@...ux.dev>

Thanks!

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ