Re: [PATCH v4] kmemleak: survive in a low-memory situation

From: Catalin Marinas
Date: Thu Mar 28 2019 - 11:06:03 EST


On Wed, Mar 27, 2019 at 02:02:27PM -0400, Qian Cai wrote:
> On 3/27/19 1:29 PM, Catalin Marinas wrote:
> > From dc4194539f8191bb754901cea74c86e7960886f8 Mon Sep 17 00:00:00 2001
> > From: Catalin Marinas <catalin.marinas@xxxxxxx>
> > Date: Wed, 27 Mar 2019 17:20:57 +0000
> > Subject: [PATCH] mm: kmemleak: Add an emergency allocation pool for kmemleak
> > objects
> >
> > This patch adds an emergency pool for struct kmemleak_object in case the
> > normal kmem_cache_alloc() fails under the gfp constraints passed by the
> > slab allocation caller. The patch also removes __GFP_NOFAIL which does
> > not play well with other gfp flags (introduced by commit d9570ee3bd1d,
> > "kmemleak: allow to coexist with fault injection").
> >
> > Suggested-by: Michal Hocko <mhocko@xxxxxxxxxx>
> > Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx>
>
> It takes 2 runs of LTP oom01 tests to disable kmemleak.

What configuration are you using (number of CPUs, RAM)? I tried this on
an arm64 guest under kvm with 4 CPUs and 512MB of RAM, together with
fault injection on kmemleak_object cache and running oom01 several times
without any failures.

--
Catalin