From: Ulf Magnusson <ulfalizer@gmail.com>
To: yann.morin.1998@free.fr, linux-kbuild@vger.kernel.org
Cc: sam@ravnborg.org, zippel@linux-m68k.org,
nicolas.pitre@linaro.org, michal.lkml@markovi.net,
dirk@gouders.net, yamada.masahiro@socionext.com,
lacombar@gmail.com, walch.martin@web.de, JBeulich@suse.com,
linux-kernel@vger.kernel.org, Ulf Magnusson <ulfalizer@gmail.com>
Subject: [PATCH 0/6] kconfig: Fix memory leaks during parsing
Date: Sun, 8 Oct 2017 19:11:17 +0200 [thread overview]
Message-ID: <1507482683-22651-1-git-send-email-ulfalizer@gmail.com> (raw)
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
scripts/kconfig/symbol.c | 5 +
scripts/kconfig/zconf.tab.c_shipped | 562 +++++++++++++++++++-----------------
scripts/kconfig/zconf.y | 77 +++--
3 files changed, 349 insertions(+), 295 deletions(-)
--
2.7.4
next reply other threads:[~2017-10-08 17:12 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-08 17:11 Ulf Magnusson [this message]
2017-10-08 17:11 ` [PATCH 1/6] kconfig: Don't leak symbol names during parsing Ulf Magnusson
2017-10-08 17:11 ` [PATCH 2/6] kconfig: Don't leak 'source' filenames " Ulf Magnusson
2017-10-08 17:11 ` [PATCH 3/6] kconfig: Don't leak 'option' arguments " Ulf Magnusson
2017-10-08 17:11 ` [PATCH 4/6] Kconfig: Don't leak main menus " Ulf Magnusson
2017-10-08 17:11 ` [PATCH 5/6] kconfig: Don't leak help strings " Ulf Magnusson
2018-01-10 16:12 ` Masahiro Yamada
2018-01-12 8:47 ` Ulf Magnusson
2017-10-08 17:11 ` [PATCH 6/6] kconfig: Regenerate parser Ulf Magnusson
2017-10-08 22:25 ` Ulf Magnusson
2018-01-10 16:12 ` [PATCH 0/6] kconfig: Fix memory leaks during parsing Masahiro Yamada
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1507482683-22651-1-git-send-email-ulfalizer@gmail.com \
--to=ulfalizer@gmail.com \
--cc=JBeulich@suse.com \
--cc=dirk@gouders.net \
--cc=lacombar@gmail.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michal.lkml@markovi.net \
--cc=nicolas.pitre@linaro.org \
--cc=sam@ravnborg.org \
--cc=walch.martin@web.de \
--cc=yamada.masahiro@socionext.com \
--cc=yann.morin.1998@free.fr \
--cc=zippel@linux-m68k.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox