lkml.org 
[lkml]   [2009]   [Apr]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [GIT RFC] percpu: use dynamic percpu allocator as the default percpu allocator
    On Thu, 2 Apr 2009 11:24:18 +0400
    Ivan Kokshaysky <ink@jurassic.park.msu.ru> wrote:

    > On the other hand, some tricks with DEFINE_PER_CPU() are indeed possible -
    > for instance, using weak references we could force the compiler to
    > generate proper addressing mode. So DEFINE_PER_CPU(int, foo) in module
    > would expand to something like this:
    >
    > extern int per_cpu__foo;
    > asm(".weakref per_cpu__foo, per_cpu_mod__foo");
    > __attribute__((__section__(".data.percpu"))) int per_cpu_mod__foo
    >
    > The main problem is that our DEFINE_PER_CPU() macro consists of more
    > than one definition, so it won't be possible to specify both storage class
    > and initializer with it.
    >
    > If it's acceptable to change the semantics from
    >
    > static DEFINE_PER_CPU(int, foo) = 1
    >
    > to
    >
    > DEFINE_PER_CPU(static, int, foo) = 1
    >
    > then we're ok.
    >
    > Or maybe just add STATIC_DEFINE_PER_CPU_xx() variants?

    That is what I'm after as well. Just drop the "static" from the
    DEFINE_PER_CPU statement found inside modules and it works.

    My experiments with the weak and visibility attribute failed because
    the static storage class specifier together with the attribute either
    causes a compile error or static just overrides the attribute.

    --
    blue skies,
    Martin.

    "Reality continues to ruin my life." - Calvin.



    \
     
     \ /
      Last update: 2009-04-02 13:17    [W:5.881 / U:0.200 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site