Messages in this thread | | | From | Waiman Long <> | Subject | Re: [PATCH 1/3] mm, memcg: Don't put offlined memcg into local stock | Date | Fri, 1 Oct 2021 21:54:14 -0400 |
| |
On 10/1/21 7:51 PM, 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.
I am debugging a problem where some dying memcgs somehow stay around for a long time leading to gradual increase in memory consumption over time. I see the per-cpu stock as one of the places where a reference to a dying memcg may be present. Anyway, I agree that it may not help much. I am going to drop it if you think it is not a good idea.
Cheers, Longman
| |