lkml.org 
[lkml]   [2021]   [Mar]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 2/3] percpu: Export per_cpu_sum()
    Date
    per_cpu_sum() is useful, and deserves to be exported.

    Tested-by: James Wang <jnwang@linux.alibaba.com>
    Signed-off-by: Xunlei Pang <xlpang@linux.alibaba.com>
    ---
    include/linux/percpu-defs.h | 10 ++++++++++
    kernel/locking/percpu-rwsem.c | 10 ----------
    2 files changed, 10 insertions(+), 10 deletions(-)

    diff --git a/include/linux/percpu-defs.h b/include/linux/percpu-defs.h
    index dff7040..0e71b68 100644
    --- a/include/linux/percpu-defs.h
    +++ b/include/linux/percpu-defs.h
    @@ -220,6 +220,16 @@
    (void)__vpp_verify; \
    } while (0)

    +#define per_cpu_sum(var) \
    +({ \
    + typeof(var) __sum = 0; \
    + int cpu; \
    + compiletime_assert_atomic_type(__sum); \
    + for_each_possible_cpu(cpu) \
    + __sum += per_cpu(var, cpu); \
    + __sum; \
    +})
    +
    #ifdef CONFIG_SMP

    /*
    diff --git a/kernel/locking/percpu-rwsem.c b/kernel/locking/percpu-rwsem.c
    index 70a32a5..0980e51 100644
    --- a/kernel/locking/percpu-rwsem.c
    +++ b/kernel/locking/percpu-rwsem.c
    @@ -178,16 +178,6 @@ bool __percpu_down_read(struct percpu_rw_semaphore *sem, bool try)
    }
    EXPORT_SYMBOL_GPL(__percpu_down_read);

    -#define per_cpu_sum(var) \
    -({ \
    - typeof(var) __sum = 0; \
    - int cpu; \
    - compiletime_assert_atomic_type(__sum); \
    - for_each_possible_cpu(cpu) \
    - __sum += per_cpu(var, cpu); \
    - __sum; \
    -})
    -
    /*
    * Return true if the modular sum of the sem->read_count per-CPU variable is
    * zero. If this sum is zero, then it is stable due to the fact that if any
    --
    1.8.3.1
    \
     
     \ /
      Last update: 2021-03-17 08:56    [W:4.141 / U:0.360 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site