summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cputimer-cure-lock-inversion.patch73
-rw-r--r--kernel.spec11
-rw-r--r--sources1
3 files changed, 4 insertions, 81 deletions
diff --git a/cputimer-cure-lock-inversion.patch b/cputimer-cure-lock-inversion.patch
deleted file mode 100644
index cebb775bf..000000000
--- a/cputimer-cure-lock-inversion.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-Subject: cputimer: Cure lock inversion
-From: Peter Zijlstra <a.p.zijlstra@chello.nl>
-Date: Mon Oct 17 11:50:30 CEST 2011
-
-There's a lock inversion between the cputimer->lock and rq->lock; notably
-the two callchains involved are:
-
- update_rlimit_cpu()
- sighand->siglock
- set_process_cpu_timer()
- cpu_timer_sample_group()
- thread_group_cputimer()
- cputimer->lock
- thread_group_cputime()
- task_sched_runtime()
- ->pi_lock
- rq->lock
-
- scheduler_tick()
- rq->lock
- task_tick_fair()
- update_curr()
- account_group_exec()
- cputimer->lock
-
-Where the first one is enabling a CLOCK_PROCESS_CPUTIME_ID timer, and
-the second one is keeping up-to-date.
-
-This problem was introduced by e8abccb7193 ("posix-cpu-timers: Cure
-SMP accounting oddities").
-
-Cure the problem by removing the cputimer->lock and rq->lock nesting,
-this leaves concurrent enablers doing duplicate work, but the time
-wasted should be on the same order otherwise wasted spinning on the
-lock and the greater-than assignment filter should ensure we preserve
-monotonicity.
-
-Reported-by: Dave Jones <davej@redhat.com>
-Reported-by: Simon Kirby <sim@hostway.ca>
-Cc: stable@kernel.org
-Cc: Thomas Gleixner <tglx@linutronix.de>
-Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
----
- kernel/posix-cpu-timers.c | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-Index: linux-2.6/kernel/posix-cpu-timers.c
-===================================================================
---- linux-2.6.orig/kernel/posix-cpu-timers.c
-+++ linux-2.6/kernel/posix-cpu-timers.c
-@@ -274,9 +274,7 @@ void thread_group_cputimer(struct task_s
- struct task_cputime sum;
- unsigned long flags;
-
-- spin_lock_irqsave(&cputimer->lock, flags);
- if (!cputimer->running) {
-- cputimer->running = 1;
- /*
- * The POSIX timer interface allows for absolute time expiry
- * values through the TIMER_ABSTIME flag, therefore we have
-@@ -284,8 +282,11 @@ void thread_group_cputimer(struct task_s
- * it.
- */
- thread_group_cputime(tsk, &sum);
-+ spin_lock_irqsave(&cputimer->lock, flags);
-+ cputimer->running = 1;
- update_gt_cputime(&cputimer->cputime, &sum);
-- }
-+ } else
-+ spin_lock_irqsave(&cputimer->lock, flags);
- *times = cputimer->cputime;
- spin_unlock_irqrestore(&cputimer->lock, flags);
- }
-
diff --git a/kernel.spec b/kernel.spec
index 44d71c1e0..093f9315a 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -84,7 +84,7 @@ Summary: The Linux kernel
# The rc snapshot level
%define rcrev 10
# The git snapshot level
-%define gitrev 0
+%define gitrev 1
# Set rpm version accordingly
%define rpmversion 3.%{upstream_sublevel}.0
%endif
@@ -749,9 +749,6 @@ Patch21002: mmc-Always-check-for-lower-base-frequency-quirk-for-.patch
Patch21020: 0001-mm-vmscan-Limit-direct-reclaim-for-higher-order-allo.patch
Patch21021: 0002-mm-Abort-reclaim-compaction-if-compaction-can-procee.patch
-# rhbz #746485
-Patch21030: cputimer-cure-lock-inversion.patch
-
%endif
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@@ -1379,9 +1376,6 @@ ApplyPatch utrace.patch
ApplyPatch 0001-mm-vmscan-Limit-direct-reclaim-for-higher-order-allo.patch
ApplyPatch 0002-mm-Abort-reclaim-compaction-if-compaction-can-procee.patch
-# rhbz #746485
-ApplyPatch cputimer-cure-lock-inversion.patch
-
# END OF PATCH APPLICATIONS
%endif
@@ -2090,8 +2084,9 @@ fi
# ||----w |
# || ||
%changelog
-* Fri Oct 21 2011 Chuck Ebbert <cebbert@redhat.com>
+* Fri Oct 21 2011 Chuck Ebbert <cebbert@redhat.com> 3.1.0-0.rc10.git1.1
- Require grubby >= 8.3-1 like F16 does.
+- Update to upstream HEAD (v3.1-rc10-42-g2efd7c0).
* Fri Oct 21 2011 Dave Jones <davej@redhat.com>
- Lower severity of Radeon lockup messages.
diff --git a/sources b/sources
index b3a7cb26e..7924e6091 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,3 @@
398e95866794def22b12dfbc15ce89c0 linux-3.0.tar.bz2
6a91efe6505579a181c5f5e1a68f6c3a patch-3.1-rc10.bz2
+aaf9baa66a0fde2b3824ab618ac1be6c patch-3.1-rc10-git1.bz2