Messages in this thread | | | Date | Mon, 31 Jan 2022 12:15:19 -0500 | Subject | Re: [PATCH 1/3] mm, memcg: Don't put offlined memcg into local stock | From | Waiman Long <> |
| |
On 1/31/22 12:09, Waiman Long wrote: > 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>
BTW, have you posted it to lkml? If not, would you mind doing so?
Thanks, Longman
| |