On Mon, Jan 31, 2022 at 9:25 AM Waiman Long <longman@xxxxxxxxxx> wrote: > > On 1/31/22 12:19, Roman Gushchin wrote: > > On Mon, Jan 31, 2022 at 12:15:19PM -0500, Waiman Long wrote: > >> 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@xxxxxxxxxx> > >> BTW, have you posted it to lkml? If not, would you mind doing so? > > Not yet. > > > > I was waiting for Alexander to confirm that it resolves the originally reported > > issue. I just pinged him, will wait for tomorrow and post the patch in any case. > > > > Thanks! > > I see. This is not a problem that is easily reproducible. You need to > hit the right timing for the lockdep splat to appear. I agree here. The patch on its own has merits as it is reducing dependency on an unrelated lock.