Re: [RFC PATCH 5/6 v4] perf: Fix race in callchains

From: Paul Mackerras
Date: Tue Aug 17 2010 - 00:53:59 EST


On Tue, Aug 17, 2010 at 03:34:06AM +0200, Frederic Weisbecker wrote:

> Now that software events don't have interrupt disabled anymore in
> the event path, callchains can nest on any context. So seperating
> nmi and others contexts in two buffers has become racy.
>
> Fix this by providing one buffer per nesting level. Given the size
> of the callchain entries (2040 bytes * 4), we now need to allocate
> them dynamically.
>
> v2: Fixed put_callchain_entry call after recursion.
> Fix the type of the recursion, it must be an array.
>
> v3: Use a manual pr cpu allocation (temporary solution until NMIs
> can safely access vmalloc'ed memory).

It would be nice to make these allocations node-local.

Also, I see that we're allocating 4 buffers per cpu on powerpc when we
strictly only need 3, but I don't suppose that really matters.

Paul.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/