Re: [PATCH 0/6] kconfig: Fix memory leaks during parsing

From: Masahiro Yamada
Date: Wed Jan 10 2018 - 11:13:36 EST


2017-10-09 2:11 GMT+09:00 Ulf Magnusson <ulfalizer@xxxxxxxxx>:
> Hello,
>
> This patchset plugs all memory leaks that occur in the parser (zconf.y) while
> parsing the x86 Kconfigs (and likely the other ARCHes too). I noticed that
> Kconfig is pretty leaky while working on the fix for 'm' before MODULES
> (http://www.spinics.net/lists/linux-kbuild/msg15606.html).
>
> The biggest culprit is all symbol names being leaked outside of expressions:
> 316 KB leaked. 'source' filenames being leaked adds another 41 KB. The other
> leaks are minor (< 1 KB each). The fixes can be applied independently.
>
> This is mostly just to get a clean slate with Valgrind, but also cleans up the
> code a bit as a side effect. Any performance difference (plus or minus) seems
> to be in the noise.
>
> Tested with the Kconfiglib test suite, which indirectly verifies that Kconfig
> still generates the same .config for alldefconfig, allnoconfig, allyesconfig,
> and all defconfigs, for all architectures. I also tested that menuconfig gets
> the right main menu text with and without a 'mainmenu' statement.
>
> As a reminder, the parsers can be rebuilt like this:
>
> $ make REGENERATE_PARSERS=1 conf
>
> Here's an easy way to run Valgrind on menuconfig (nothing seems to look at
> KERNELVERSION, so just set it to avoid a warning):
>
> $ ARCH=x86 SRCARCH=x86 KERNELVERSION=4.14.0-rc2 valgrind --leak-check=full scripts/kconfig/mconf Kconfig
>
> Cheers,
> Ulf
>
> Ulf Magnusson (6):
> kconfig: Don't leak symbol names during parsing
> kconfig: Don't leak 'source' filenames during parsing
> kconfig: Don't leak 'option' arguments during parsing
> Kconfig: Don't leak main menus during parsing
> kconfig: Don't leak help strings during parsing
> kconfig: Regenerate parser


I applied 1-5.

I left some comments on 5.


--
Best Regards
Masahiro Yamada