This is a note to let you know that I've just added the patch titled

    ia64: Add missing RCU idle APIs on idle loop

to the 3.5-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     ia64-add-missing-rcu-idle-apis-on-idle-loop.patch
and it can be found in the queue-3.5 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.


>From 93482f4ef1093f5961a63359a34612183d6beea0 Mon Sep 17 00:00:00 2001
From: "Paul E. McKenney" <paul.mcken...@linaro.org>
Date: Fri, 24 Aug 2012 13:22:13 -0700
Subject: ia64: Add missing RCU idle APIs on idle loop

From: "Paul E. McKenney" <paul.mcken...@linaro.org>

commit 93482f4ef1093f5961a63359a34612183d6beea0 upstream.

Traditionally, the entire idle task served as an RCU quiescent state.
But when RCU read side critical sections started appearing within the
idle loop, this traditional strategy became untenable.  The fix was to
create new RCU APIs named rcu_idle_enter() and rcu_idle_exit(), which
must be called by each architecture's idle loop so that RCU can tell
when it is safe to ignore a given idle CPU.

Unfortunately, this fix was never applied to ia64, a shortcoming remedied
by this commit.

Reported by: Tony Luck <tony.l...@intel.com>
Signed-off-by: Paul E. McKenney <paul.mcken...@linaro.org>
Signed-off-by: Paul E. McKenney <paul...@linux.vnet.ibm.com>
Tested by: Tony Luck <tony.l...@intel.com>
Reviewed-by: Josh Triplett <j...@joshtriplett.org>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

---
 arch/ia64/kernel/process.c |    3 +++
 1 file changed, 3 insertions(+)

--- a/arch/ia64/kernel/process.c
+++ b/arch/ia64/kernel/process.c
@@ -29,6 +29,7 @@
 #include <linux/kdebug.h>
 #include <linux/utsname.h>
 #include <linux/tracehook.h>
+#include <linux/rcupdate.h>
 
 #include <asm/cpu.h>
 #include <asm/delay.h>
@@ -279,6 +280,7 @@ cpu_idle (void)
 
        /* endless idle loop with no priority at all */
        while (1) {
+               rcu_idle_enter();
                if (can_do_pal_halt) {
                        current_thread_info()->status &= ~TS_POLLING;
                        /*
@@ -309,6 +311,7 @@ cpu_idle (void)
                        normal_xtp();
 #endif
                }
+               rcu_idle_exit();
                schedule_preempt_disabled();
                check_pgt_cache();
                if (cpu_is_offline(cpu))


Patches currently in stable-queue which might be from paul.mcken...@linaro.org 
are

queue-3.5/rcu-fix-day-one-dyntick-idle-stall-warning-bug.patch
queue-3.5/ia64-add-missing-rcu-idle-apis-on-idle-loop.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to