lkml.org 
[lkml]   [2018]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH 0/6] kconfig: Fix memory leaks during parsing
2017-10-09 2:11 GMT+09:00 Ulf Magnusson <ulfalizer@gmail.com>:
> 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

\
 
 \ /
  Last update: 2018-01-14 23:21    [W:0.062 / U:0.048 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site