On Mon, 2015-03-02 at 11:29 -0800, Alexei Starovoitov wrote: > On Mon, Mar 2, 2015 at 10:54 AM, Tom Zanussi > <tom.zanu...@linux.intel.com> wrote: > >> > > >> > The idea would be that instead of getting your individually kmalloc'ed > >> > elements on-demand from kmalloc while in the handler, you'd get them > >> > from a pool you've pre-allocated when you set up the table. This could > >> > be from a list of individual entries you've already kmalloc'ed ahead of > >> > time, or from an array of n * sizeof(entry). > >> > >> would work, but kinda ugly, since we will pre-allocate a lot > >> and may not be using it at all. > >> > > > > That's true but you have a user-defined map limit anyway, which you can > > adjust to minimize wastage. And allocating ahead of time also means you > > perturb the system less while actually tracing. > > nope. it's the other way around. > using kmalloc is faster and less overhead on the whole system > then grabbing cache-cold objects from special pool.
Until you start causing GFP_ATOMIC failures for what you're tracing because your map has grabbed them all... Tom > -- > 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/ -- 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/