[lkml]   [2010]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] perf_events: improve DS/BTS/PEBS buffer allocation
    On Mon, 2010-09-13 at 16:55 +0200, Stephane Eranian wrote:
    > 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.
    > All buffers are only accessed on the CPU they are attached to.
    > kzalloc() does not take into account NUMA, thus all allocations
    > are taking place on the NUMA node where the perf_event_open() is
    > made.

    I guess that should have been a alloc_pages_node() indeed.

    > This patch switches allocation to vmalloc_node() to use non-contiguous
    > physical memory and to allocate on the NUMA node corresponding to each
    > CPU. We switched DS and PEBS although they do not cause problems today,
    > to, at least, make the allocation on the correct NUMA node. In the future,
    > the PEBS buffer size may increase. DS may also grow bigger than a page.
    > This patch eliminates the memory allocation imbalance.

    I'm not really a fan of vmalloc, have you actually observed allocation
    failures for these 64k (order-4) allocations?

     \ /
      Last update: 2010-09-13 17:11    [W:0.019 / U:5.664 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site