Re: [PATCH] perf_events: improve DS/BTS/PEBS buffer allocation

Peter Zijlstra
2010-09-13T19:49:41Z

On Mon, 2010-09-13 at 21:35 +0200, Andi Kleen wrote:
> Stephane Eranian <eranian@google.com> writes:
>
> > The DS, BTS, and PEBS memory regions were allocated using kzalloc(), i.e.,
> > requesting contiguous physical memory. There is no such restriction on
> > DS, PEBS and BTS buffers. Using kzalloc() could lead to error in case
> > no contiguous physical memory is available. BTS is requesting 64KB,
> > thus it can cause issues. PEBS is currently only requesting one page.
> > Both PEBS and BTS are static buffers allocated for each CPU at the
> > first user. When the last user exists, the buffers are released.
>
> DS supports page tables, but I have some doubts it really
> supports page faults. vmalloc today does page faults.
>
> I think the change is a good idea, but it will need vmalloc_sync_all()
> everywhere.

Right, I seem to remember from that last discussion on vmalloc vs NMI
that vmalloc_sync_all() had some issues, or am I totally mis-remembering
that?

But yes, a vmalloc_sync_all() after the vmalloc_node() and this should
indeed work.