lkml.org 
[lkml]   [2010]   [Oct]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH 1/2]percpu: introduce read mostly percpu API
    From
    Date
    Add a new readmostly percpu section and api, next patch will use it.

    Signed-off-by: Shaohua Li <shaohua.li@intel.com>
    ---
    include/asm-generic/vmlinux.lds.h | 4 ++++
    include/linux/percpu-defs.h | 9 +++++++++
    2 files changed, 13 insertions(+)

    Index: linux/include/asm-generic/vmlinux.lds.h
    ===================================================================
    --- linux.orig/include/asm-generic/vmlinux.lds.h 2010-10-20 09:32:52.000000000 +0800
    +++ linux/include/asm-generic/vmlinux.lds.h 2010-10-20 10:03:38.000000000 +0800
    @@ -677,6 +677,8 @@
    - LOAD_OFFSET) { \
    VMLINUX_SYMBOL(__per_cpu_start) = .; \
    *(.data..percpu..first) \
    + . = ALIGN(PAGE_SIZE); \
    + *(.data..percpu..readmostly) \
    *(.data..percpu..page_aligned) \
    *(.data..percpu) \
    *(.data..percpu..shared_aligned) \
    @@ -703,6 +705,8 @@
    VMLINUX_SYMBOL(__per_cpu_load) = .; \
    VMLINUX_SYMBOL(__per_cpu_start) = .; \
    *(.data..percpu..first) \
    + . = ALIGN(PAGE_SIZE); \
    + *(.data..percpu..readmostly) \
    *(.data..percpu..page_aligned) \
    *(.data..percpu) \
    *(.data..percpu..shared_aligned) \
    Index: linux/include/linux/percpu-defs.h
    ===================================================================
    --- linux.orig/include/linux/percpu-defs.h 2010-10-20 09:14:27.000000000 +0800
    +++ linux/include/linux/percpu-defs.h 2010-10-20 09:17:08.000000000 +0800
    @@ -139,6 +139,15 @@
    __aligned(PAGE_SIZE)

    /*
    + * Declaration/definition used for per-CPU variables that must be read mostly.
    + */
    +#define DECLARE_PER_CPU_READ_MOSTLY(type, name) \
    + DECLARE_PER_CPU_SECTION(type, name, "..readmostly")
    +
    +#define DEFINE_PER_CPU_READ_MOSTLY(type, name) \
    + DEFINE_PER_CPU_SECTION(type, name, "..readmostly")
    +
    +/*
    * Intermodule exports for per-CPU variables. sparse forgets about
    * address space across EXPORT_SYMBOL(), change EXPORT_SYMBOL() to
    * noop if __CHECKER__.



    \
     
     \ /
      Last update: 2010-10-20 05:09    [W:0.020 / U:6.420 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site