| From 76491b7109a568293ae382a1aa860c685f8f39fb Mon Sep 17 00:00:00 2001 |
| From: Thomas Gleixner <tglx@linutronix.de> |
| Date: Sat, 25 Jul 2009 18:56:56 +0200 |
| Subject: [PATCH] sched: Convert thread_group_cputimer lock to raw_spinlock |
| |
| commit a3f22fd7ae186a29b413ad959184f9b4c1d32173 in tip. |
| |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/include/linux/init_task.h b/include/linux/init_task.h |
| index abec69b..e93b8cd 100644 |
| --- a/include/linux/init_task.h |
| +++ b/include/linux/init_task.h |
| @@ -27,7 +27,7 @@ extern struct fs_struct init_fs; |
| .cputimer = { \ |
| .cputime = INIT_CPUTIME, \ |
| .running = 0, \ |
| - .lock = __SPIN_LOCK_UNLOCKED(sig.cputimer.lock), \ |
| + .lock = __RAW_SPIN_LOCK_UNLOCKED(sig.cputimer.lock), \ |
| }, \ |
| } |
| |
| diff --git a/include/linux/sched.h b/include/linux/sched.h |
| index 2846c5f..6ea0d5b 100644 |
| --- a/include/linux/sched.h |
| +++ b/include/linux/sched.h |
| @@ -561,7 +561,7 @@ struct task_cputime { |
| struct thread_group_cputimer { |
| struct task_cputime cputime; |
| int running; |
| - spinlock_t lock; |
| + raw_spinlock_t lock; |
| }; |
| |
| /* |
| @@ -2466,7 +2466,7 @@ void thread_group_cputimer(struct task_struct *tsk, struct task_cputime *times); |
| static inline void thread_group_cputime_init(struct signal_struct *sig) |
| { |
| sig->cputimer.cputime = INIT_CPUTIME; |
| - spin_lock_init(&sig->cputimer.lock); |
| + raw_spin_lock_init(&sig->cputimer.lock); |
| sig->cputimer.running = 0; |
| } |
| |
| diff --git a/kernel/posix-cpu-timers.c b/kernel/posix-cpu-timers.c |
| index 438ff45..359cc24 100644 |
| --- a/kernel/posix-cpu-timers.c |
| +++ b/kernel/posix-cpu-timers.c |
| @@ -280,7 +280,7 @@ void thread_group_cputimer(struct task_struct *tsk, struct task_cputime *times) |
| struct task_cputime sum; |
| unsigned long flags; |
| |
| - spin_lock_irqsave(&cputimer->lock, flags); |
| + raw_spin_lock_irqsave(&cputimer->lock, flags); |
| if (!cputimer->running) { |
| cputimer->running = 1; |
| /* |
| @@ -293,7 +293,7 @@ void thread_group_cputimer(struct task_struct *tsk, struct task_cputime *times) |
| update_gt_cputime(&cputimer->cputime, &sum); |
| } |
| *times = cputimer->cputime; |
| - spin_unlock_irqrestore(&cputimer->lock, flags); |
| + raw_spin_unlock_irqrestore(&cputimer->lock, flags); |
| } |
| |
| /* |
| @@ -1068,9 +1068,9 @@ static void stop_process_timers(struct task_struct *tsk) |
| if (!cputimer->running) |
| return; |
| |
| - spin_lock_irqsave(&cputimer->lock, flags); |
| + raw_spin_lock_irqsave(&cputimer->lock, flags); |
| cputimer->running = 0; |
| - spin_unlock_irqrestore(&cputimer->lock, flags); |
| + raw_spin_unlock_irqrestore(&cputimer->lock, flags); |
| } |
| |
| static u32 onecputick; |
| diff --git a/kernel/sched_stats.h b/kernel/sched_stats.h |
| index 32d2bd4..9ecca2f 100644 |
| --- a/kernel/sched_stats.h |
| +++ b/kernel/sched_stats.h |
| @@ -306,10 +306,10 @@ static inline void account_group_user_time(struct task_struct *tsk, |
| if (!cputimer->running) |
| return; |
| |
| - spin_lock(&cputimer->lock); |
| + raw_spin_lock(&cputimer->lock); |
| cputimer->cputime.utime = |
| cputime_add(cputimer->cputime.utime, cputime); |
| - spin_unlock(&cputimer->lock); |
| + raw_spin_unlock(&cputimer->lock); |
| } |
| |
| /** |
| @@ -336,10 +336,10 @@ static inline void account_group_system_time(struct task_struct *tsk, |
| if (!cputimer->running) |
| return; |
| |
| - spin_lock(&cputimer->lock); |
| + raw_spin_lock(&cputimer->lock); |
| cputimer->cputime.stime = |
| cputime_add(cputimer->cputime.stime, cputime); |
| - spin_unlock(&cputimer->lock); |
| + raw_spin_unlock(&cputimer->lock); |
| } |
| |
| /** |
| @@ -369,7 +369,7 @@ static inline void account_group_exec_runtime(struct task_struct *tsk, |
| if (!cputimer->running) |
| return; |
| |
| - spin_lock(&cputimer->lock); |
| + raw_spin_lock(&cputimer->lock); |
| cputimer->cputime.sum_exec_runtime += ns; |
| - spin_unlock(&cputimer->lock); |
| + raw_spin_unlock(&cputimer->lock); |
| } |
| -- |
| 1.7.1.1 |
| |