Messages in this thread | | | Date | Sun, 27 Apr 2014 21:49:37 +0900 | From | Masami Hiramatsu <> | Subject | Re: [PATCH -tip v9 25/26] kprobes: Introduce kprobe cache to reduce cache misshits |
| |
(2014/04/26 16:12), Ingo Molnar wrote: > > * Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> wrote: > >> (2014/04/25 17:20), Ingo Molnar wrote: >>> >>> * Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> wrote: >>> >>>>> So I don't think this should be a Kconfig entry, just enable it >>>>> unconditionally. That will further simplify the code. >>>> >>>> Hmm, it consumes some amount of memory (36KB/core) just for the >>>> case of several thousand of kprobes. On enterprise servers and >>>> desktop it's OK, no problem. But I think, some embedded systems >>>> with small resources will not want that. [...] >>> >>> They'll just disable kprobes in general. >> >> No, I'd like to provide kprobes (and dynamic events) to them >> (including me) for debugging and dynamic monitoring, instead of >> modifying code for adding events on their kernel. To solve some >> specific issues, specific events (not generic events) are required. >> Making local patches to add such events is an option, but it >> increases maintenance cost for rebasing. It is better to pay cost to >> maintain this kconfig on upstream as the maintainer for me instead >> of paying such ugly local cost. :( >> >> Anyway, this option is not easy for beginners, I think it should be >> defined with "if EXPERT" option and make it enabled by default. >> >>> Really, at this point complexity is our main concern. >> >> Agreed about complexity issue. However, even if we remove the >> Kconfig, we can just save 6 lines of the code, and one #ifdef block. >> Can that really solve the complexity problem? > > It's more about the mental picture about how kprobes works. The fewer > binary state flags, the better.
OK, how much the amount of code is changed is not a matter.
Hmm, at this point, I'll update it to remove the Kconfig. And also I'd like to add a note that this makes kprobes bigger, since without kpcache kprobe hash table is just 4KB, but with kpcache, it consumes 4KB + 36KB/core (10 times bigger at single core.) Of course, it is still enough small for many systems which have 256MB or more DRAM.
And I'll give smaller systems (such as controller/sensor boards for IoT etc.) an out-of-tree kconfig patch to disable kpcache if they need... That's better than maintaining additional-event patches.
Thank you,
-- Masami HIRAMATSU Software Platform Research Dept. Linux Technology Research Center Hitachi, Ltd., Yokohama Research Laboratory E-mail: masami.hiramatsu.pt@hitachi.com
| |