lkml.org 
[lkml]   [2011]   [Oct]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 2/4] kmemleak: Handle percpu memory allocation
    Hello,

    On Tue, Oct 04, 2011 at 10:04:46AM +0100, Catalin Marinas wrote:
    > > The percpu part looks fine to me but I don't know how kmemleak works
    > > to judge whether the kmemleak part is okay or not. This just avoids
    > > false positives from slab and would still require bumping up the early
    > > log memory as # of cpus increases, right?
    >
    > No, there is only one kmemleak call for each __percpu pointer (to the
    > specific kmemleak_*_percpu function). The kmemleak expands the percpu
    > pointer into corresponding blocks for each cpu but the early log only
    > stores a single call.

    Hmmm... but the following definitely seems O(#PCPU_ALLOCS * #CPUS)?
    What am I missing?

    +/*
    + * Log an early allocated block and populate the stack trace.
    + */
    +static void early_alloc_percpu(struct early_log *log)
    +{
    + unsigned int cpu;
    + const void __percpu *ptr = log->ptr;
    +
    + for_each_possible_cpu(cpu) {
    + log->ptr = per_cpu_ptr(ptr, cpu);
    + early_alloc(log);
    + }
    +}

    Thanks.

    --
    tejun


    \
     
     \ /
      Last update: 2011-10-04 11:15    [W:2.533 / U:0.364 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site