Messages in this thread | | | Date | Mon, 31 Jan 2022 12:09:09 -0500 | Subject | Re: [PATCH 1/3] mm, memcg: Don't put offlined memcg into local stock | From | Waiman Long <> |
| |
On 1/31/22 12:01, Roman Gushchin wrote: > On Sun, Jan 30, 2022 at 10:55:56PM -0500, Waiman Long wrote: >> On 10/1/21 19:51, Roman Gushchin wrote: >>> On Fri, Oct 01, 2021 at 03:09:36PM -0400, Waiman Long wrote: >>>> When freeing a page associated with an offlined memcg, refill_stock() >>>> will put it into local stock delaying its demise until another memcg >>>> comes in to take its place in the stock. To avoid that, we now check >>>> for offlined memcg and go directly in this case to the slowpath for >>>> the uncharge via the repurposed cancel_charge() function. >>> Hi Waiman! >>> >>> I'm afraid it can make a cleanup of a dying cgroup slower: for every >>> released page we'll potentially traverse the whole cgroup tree and >>> decrease atomic page counters. >>> >>> I'm not sure I understand the benefits we get from this change which >>> do justify the slowdown on the cleanup path. >>> >>> Thanks! >> I was notified of a lockdep splat that this patch may help to prevent. > Would you mind to test this patch: > https://www.spinics.net/lists/cgroups/msg31244.html ? > > It should address this dependency.
Thanks for the pointer. I believe that your patch should be able to address this circular locking dependency.
Feel free to add my
Reviewed-by: Waiman Long <longman@redhat.com>
Cheers, Longman
| |