On Mon, Mar 2, 2015 at 10:43 AM, Steven Rostedt <rost...@goodmis.org> wrote: > On Mon, 2 Mar 2015 10:12:32 -0800 > Alexei Starovoitov <a...@plumgrid.com> wrote: > >> I'm not sure what would be the meaning of hash map that has all >> elements pre-allocated... >> As I'm reading your cover letter, I agree, we need to find a way >> to call kmalloc_notrace-like from tracepoints. >> Not sure that patch 8 style of duplicating the functions is clean. >> Can we keep kmalloc/kfree as-is and do something like >> if (in_tracepoint()) check inside ftrace_raw_kmalloc* ? > > I'm strongly against this. You should not be doing anything in a > tracepoint that you can't do from NMI context. And calling kmalloc > happens to be one of them.
well, percentage of tracepoints called from NMI is tiny comparing to the rest, so assuming nmi context everywhere is very inefficient. Like we can use pre-allocated pool of map entries when tracepoint is called from NMI, but we shouldn't be using it in other cases. Just like ring buffers and other things have nmi and non-nmi pools and code paths, it doesn't make sense to disallow kmalloc all together. btw, calling kmalloc is _faster_ than taking objects from cache-cold special nmi only pool. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/