Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 603552 Details for
Bug 836803
RHEL6: Potential fix for leapsecond caused futex related load spikes
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
RHEL PATCH 4/7
0004-hrtimers-Move-lock-held-region-in-hrtimer_interrupt.patch (text/plain), 2.99 KB, created by
Prarit Bhargava
on 2012-08-10 13:57:01 UTC
(
hide
)
Description:
RHEL PATCH 4/7
Filename:
MIME Type:
Creator:
Prarit Bhargava
Created:
2012-08-10 13:57:01 UTC
Size:
2.99 KB
patch
obsolete
>From 71f391ac3917ccb858d009900125be9fabb4ee08 Mon Sep 17 00:00:00 2001 >From: Prarit Bhargava <prarit@redhat.com> >Date: Tue, 24 Jul 2012 10:25:01 -0400 >Subject: hrtimers: Move lock held region in hrtimer_interrupt() > >commit 196951e91262fccda81147d2bcf7fdab08668b40 >Author: Thomas Gleixner <tglx@linutronix.de> >Date: Tue Jul 10 18:43:23 2012 -0400 > > hrtimers: Move lock held region in hrtimer_interrupt() > > We need to update the base offsets from this code and we need to do > that under base->lock. Move the lock held region around the > ktime_get() calls. The ktime_get() calls are going to be replaced with > a function which gets the time and the offsets atomically. > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > Reviewed-by: Ingo Molnar <mingo@kernel.org> > Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> > Acked-by: Prarit Bhargava <prarit@redhat.com> > Cc: stable@vger.kernel.org > Signed-off-by: John Stultz <johnstul@us.ibm.com> > Link: http://lkml.kernel.org/r/1341960205-56738-6-git-send-email-johnstul@us.ibm.com > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > >Note, because retrigger_next_event() is RHEL6 specific at this point, I >did not modify the declaration > > struct hrtimer_cpu_base *base; > >in the RHEL6 backport of linux-2.6 commit >b12a03ce4880bd13786a98db6de494a3e0123129. It has now been modified to > > struct hrtimer_cpu_base *base = &__get_cpu_var(hrtimer_bases); > >so this code matches upstream and compiles. > >Additionally, note again, that RHEL6 still uses CLOCK_REALTIME, where the >upstream kernel uses HRTIMER_BASE_REALTIME and HRTIMER_BASE_BOOTTIME. >--- > kernel/hrtimer.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > >diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c >index 6703d49..87bb8a5 100644 >--- a/kernel/hrtimer.c >+++ b/kernel/hrtimer.c >@@ -707,7 +707,7 @@ static inline void hrtimer_init_timer_hres(struct hrtimer *timer) { } > */ > static void retrigger_next_event(void *arg) > { >- struct hrtimer_cpu_base *base; >+ struct hrtimer_cpu_base *base = &__get_cpu_var(hrtimer_bases); > struct timespec realtime_offset, wtm, sleep; > > if (!hrtimer_hres_active()) >@@ -1244,11 +1244,10 @@ void hrtimer_interrupt(struct clock_event_device *dev) > cpu_base->nr_events++; > dev->next_event.tv64 = KTIME_MAX; > >+ spin_lock(&cpu_base->lock); > entry_time = now = ktime_get(); > retry: > expires_next.tv64 = KTIME_MAX; >- >- spin_lock(&cpu_base->lock); > /* > * We set expires_next to KTIME_MAX here with cpu_base->lock > * held to prevent that a timer is enqueued in our queue via >@@ -1323,6 +1322,7 @@ retry: > * interrupt routine. We give it 3 attempts to avoid > * overreacting on some spurious event. > */ >+ spin_lock(&cpu_base->lock); > now = ktime_get(); > cpu_base->nr_retries++; > if (++retries < 3) >@@ -1335,6 +1335,7 @@ retry: > */ > cpu_base->nr_hangs++; > cpu_base->hang_detected = 1; >+ spin_unlock(&cpu_base->lock); > delta = ktime_sub(now, entry_time); > if (delta.tv64 > cpu_base->max_hang_time.tv64) > cpu_base->max_hang_time = delta; >-- >1.7.9.3 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 836803
:
597663
|
603549
|
603550
|
603551
| 603552 |
603553
|
603554
|
603555