Messages in this thread | | | Date | Mon, 13 Sep 2010 22:51:37 +0200 | From | Andi Kleen <> | Subject | Re: [PATCH] perf_events: improve DS/BTS/PEBS buffer allocation |
| |
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.
| |