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

Andi Kleen
2010-09-13T20:51:41Z

On Mon, 13 Sep 2010 21:49:20 +0200
Peter Zijlstra <peterz@infradead.org> wrote:

> 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?

Linus thought it was ugly, but he never explained why and it was
not obvious to me.

His proposed replacement wouldn't work for this case.

I am not aware of any real technical issues, except that
it needs to be done for both 32bit and 64bit.

-Andi

--
ak@linux.intel.com -- Speaking for myself only.