Re: [PATCH] kmemleak: Increase maximum early log entries to 1000000

From: Dmitry Vyukov
Date: Tue Jul 23 2019 - 03:46:43 EST


On Tue, Jul 23, 2019 at 9:26 AM Nicolas Boichat <drinkcat@xxxxxxxxxxxx> wrote:
>
> When KASan is enabled, a lot of memory is allocated early on,
> and kmemleak complains (this is on a 4GB RAM system):
> kmemleak: Early log buffer exceeded (129846), please increase
> DEBUG_KMEMLEAK_EARLY_LOG_SIZE
>
> Let's increase the upper limit to 1M entry. That would take up
> 160MB of RAM at init (each early_log entry is 160 bytes), but
> the memory would later be freed (early_log is __initdata).

Interesting. Is it on an arm64 system? On syzbot we use 16000 and it's
enough for a very beefy config:

https://github.com/google/syzkaller/blob/master/dashboard/config/upstream-leak.config

If it's freed later, I would increase the default as well. 400 never
worked for me and I've seen people being confused and wasn't able to
use kmemleak, e.g.:

https://groups.google.com/forum/#!searchin/syzkaller/CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE|sort:date/syzkaller/Rzf2ZRC9Qxw/tLog4DHXAgAJ

https://groups.google.com/forum/#!searchin/syzkaller/CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE|sort:date/syzkaller/5HxmTuQ7U4A/XM8s2o2CCAAJ



> Signed-off-by: Nicolas Boichat <drinkcat@xxxxxxxxxxxx>
> ---
> lib/Kconfig.debug | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
> index f567875b87657de..1a197b8125768b9 100644
> --- a/lib/Kconfig.debug
> +++ b/lib/Kconfig.debug
> @@ -595,7 +595,7 @@ config DEBUG_KMEMLEAK
> config DEBUG_KMEMLEAK_EARLY_LOG_SIZE
> int "Maximum kmemleak early log entries"
> depends on DEBUG_KMEMLEAK
> - range 200 40000
> + range 200 1000000
> default 400
> help
> Kmemleak must track all the memory allocations to avoid
> --
> 2.22.0.657.g960e92d24f-goog
>