lkml.org 
[lkml]   [2013]   [Nov]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC 7/8] locking: Move lglocks into kernel/locking/

    Suggested-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    ---
    kernel/Makefile | 2 -
    kernel/lglock.c | 89 ------------------------------------------------
    kernel/locking/Makefile | 2 -
    kernel/locking/lglock.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++++
    4 files changed, 91 insertions(+), 91 deletions(-)

    --- a/kernel/Makefile
    +++ b/kernel/Makefile
    @@ -10,7 +10,7 @@ obj-y = fork.o exec_domain.o panic.o
    kthread.o sys_ni.o posix-cpu-timers.o \
    hrtimer.o nsproxy.o \
    notifier.o ksysfs.o cred.o reboot.o \
    - async.o range.o groups.o lglock.o smpboot.o
    + async.o range.o groups.o smpboot.o

    ifdef CONFIG_FUNCTION_TRACER
    # Do not trace debug files and internal ftrace files
    --- a/kernel/lglock.c
    +++ /dev/null
    @@ -1,89 +0,0 @@
    -/* See include/linux/lglock.h for description */
    -#include <linux/module.h>
    -#include <linux/lglock.h>
    -#include <linux/cpu.h>
    -#include <linux/string.h>
    -
    -/*
    - * Note there is no uninit, so lglocks cannot be defined in
    - * modules (but it's fine to use them from there)
    - * Could be added though, just undo lg_lock_init
    - */
    -
    -void lg_lock_init(struct lglock *lg, char *name)
    -{
    - LOCKDEP_INIT_MAP(&lg->lock_dep_map, name, &lg->lock_key, 0);
    -}
    -EXPORT_SYMBOL(lg_lock_init);
    -
    -void lg_local_lock(struct lglock *lg)
    -{
    - arch_spinlock_t *lock;
    -
    - preempt_disable();
    - lock_acquire_shared(&lg->lock_dep_map, 0, 0, NULL, _RET_IP_);
    - lock = this_cpu_ptr(lg->lock);
    - arch_spin_lock(lock);
    -}
    -EXPORT_SYMBOL(lg_local_lock);
    -
    -void lg_local_unlock(struct lglock *lg)
    -{
    - arch_spinlock_t *lock;
    -
    - lock_release(&lg->lock_dep_map, 1, _RET_IP_);
    - lock = this_cpu_ptr(lg->lock);
    - arch_spin_unlock(lock);
    - preempt_enable();
    -}
    -EXPORT_SYMBOL(lg_local_unlock);
    -
    -void lg_local_lock_cpu(struct lglock *lg, int cpu)
    -{
    - arch_spinlock_t *lock;
    -
    - preempt_disable();
    - lock_acquire_shared(&lg->lock_dep_map, 0, 0, NULL, _RET_IP_);
    - lock = per_cpu_ptr(lg->lock, cpu);
    - arch_spin_lock(lock);
    -}
    -EXPORT_SYMBOL(lg_local_lock_cpu);
    -
    -void lg_local_unlock_cpu(struct lglock *lg, int cpu)
    -{
    - arch_spinlock_t *lock;
    -
    - lock_release(&lg->lock_dep_map, 1, _RET_IP_);
    - lock = per_cpu_ptr(lg->lock, cpu);
    - arch_spin_unlock(lock);
    - preempt_enable();
    -}
    -EXPORT_SYMBOL(lg_local_unlock_cpu);
    -
    -void lg_global_lock(struct lglock *lg)
    -{
    - int i;
    -
    - preempt_disable();
    - lock_acquire_exclusive(&lg->lock_dep_map, 0, 0, NULL, _RET_IP_);
    - for_each_possible_cpu(i) {
    - arch_spinlock_t *lock;
    - lock = per_cpu_ptr(lg->lock, i);
    - arch_spin_lock(lock);
    - }
    -}
    -EXPORT_SYMBOL(lg_global_lock);
    -
    -void lg_global_unlock(struct lglock *lg)
    -{
    - int i;
    -
    - lock_release(&lg->lock_dep_map, 1, _RET_IP_);
    - for_each_possible_cpu(i) {
    - arch_spinlock_t *lock;
    - lock = per_cpu_ptr(lg->lock, i);
    - arch_spin_unlock(lock);
    - }
    - preempt_enable();
    -}
    -EXPORT_SYMBOL(lg_global_unlock);
    --- a/kernel/locking/Makefile
    +++ b/kernel/locking/Makefile
    @@ -1,5 +1,5 @@

    -obj-y += mutex.o semaphore.o rwsem.o
    +obj-y += mutex.o semaphore.o rwsem.o lglock.o

    ifdef CONFIG_FUNCTION_TRACER
    CFLAGS_REMOVE_lockdep.o = -pg
    --- /dev/null
    +++ b/kernel/locking/lglock.c
    @@ -0,0 +1,89 @@
    +/* See include/linux/lglock.h for description */
    +#include <linux/module.h>
    +#include <linux/lglock.h>
    +#include <linux/cpu.h>
    +#include <linux/string.h>
    +
    +/*
    + * Note there is no uninit, so lglocks cannot be defined in
    + * modules (but it's fine to use them from there)
    + * Could be added though, just undo lg_lock_init
    + */
    +
    +void lg_lock_init(struct lglock *lg, char *name)
    +{
    + LOCKDEP_INIT_MAP(&lg->lock_dep_map, name, &lg->lock_key, 0);
    +}
    +EXPORT_SYMBOL(lg_lock_init);
    +
    +void lg_local_lock(struct lglock *lg)
    +{
    + arch_spinlock_t *lock;
    +
    + preempt_disable();
    + lock_acquire_shared(&lg->lock_dep_map, 0, 0, NULL, _RET_IP_);
    + lock = this_cpu_ptr(lg->lock);
    + arch_spin_lock(lock);
    +}
    +EXPORT_SYMBOL(lg_local_lock);
    +
    +void lg_local_unlock(struct lglock *lg)
    +{
    + arch_spinlock_t *lock;
    +
    + lock_release(&lg->lock_dep_map, 1, _RET_IP_);
    + lock = this_cpu_ptr(lg->lock);
    + arch_spin_unlock(lock);
    + preempt_enable();
    +}
    +EXPORT_SYMBOL(lg_local_unlock);
    +
    +void lg_local_lock_cpu(struct lglock *lg, int cpu)
    +{
    + arch_spinlock_t *lock;
    +
    + preempt_disable();
    + lock_acquire_shared(&lg->lock_dep_map, 0, 0, NULL, _RET_IP_);
    + lock = per_cpu_ptr(lg->lock, cpu);
    + arch_spin_lock(lock);
    +}
    +EXPORT_SYMBOL(lg_local_lock_cpu);
    +
    +void lg_local_unlock_cpu(struct lglock *lg, int cpu)
    +{
    + arch_spinlock_t *lock;
    +
    + lock_release(&lg->lock_dep_map, 1, _RET_IP_);
    + lock = per_cpu_ptr(lg->lock, cpu);
    + arch_spin_unlock(lock);
    + preempt_enable();
    +}
    +EXPORT_SYMBOL(lg_local_unlock_cpu);
    +
    +void lg_global_lock(struct lglock *lg)
    +{
    + int i;
    +
    + preempt_disable();
    + lock_acquire_exclusive(&lg->lock_dep_map, 0, 0, NULL, _RET_IP_);
    + for_each_possible_cpu(i) {
    + arch_spinlock_t *lock;
    + lock = per_cpu_ptr(lg->lock, i);
    + arch_spin_lock(lock);
    + }
    +}
    +EXPORT_SYMBOL(lg_global_lock);
    +
    +void lg_global_unlock(struct lglock *lg)
    +{
    + int i;
    +
    + lock_release(&lg->lock_dep_map, 1, _RET_IP_);
    + for_each_possible_cpu(i) {
    + arch_spinlock_t *lock;
    + lock = per_cpu_ptr(lg->lock, i);
    + arch_spin_unlock(lock);
    + }
    + preempt_enable();
    +}
    +EXPORT_SYMBOL(lg_global_unlock);



    \
     
     \ /
      Last update: 2013-11-05 13:41    [W:3.395 / U:0.204 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site