]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
rcu: Eliminate unused APIs intended for adaptive ticks
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 9 May 2013 15:55:54 +0000 (08:55 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 15 Jul 2013 23:58:31 +0000 (16:58 -0700)
The rcu_user_enter_after_irq() and rcu_user_exit_after_irq()
functions were intended for use by adaptive ticks, but changes
in implementation have rendered them unnecessary.  This commit
therefore removes them.

Reported-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
include/linux/rcupdate.h
kernel/rcutree.c

index 4b14bdc911d7854163932672ad376ab615de7be4..48f1ef98f54c94c2a26fc98788259493c4a3bda1 100644 (file)
@@ -229,13 +229,9 @@ extern void rcu_irq_exit(void);
 #ifdef CONFIG_RCU_USER_QS
 extern void rcu_user_enter(void);
 extern void rcu_user_exit(void);
-extern void rcu_user_enter_after_irq(void);
-extern void rcu_user_exit_after_irq(void);
 #else
 static inline void rcu_user_enter(void) { }
 static inline void rcu_user_exit(void) { }
-static inline void rcu_user_enter_after_irq(void) { }
-static inline void rcu_user_exit_after_irq(void) { }
 static inline void rcu_user_hooks_switch(struct task_struct *prev,
                                         struct task_struct *next) { }
 #endif /* CONFIG_RCU_USER_QS */
index 5d17667fc054afee0b4458d06ce30e2ae6567bbb..a0140f7c2c5226631c2bd66a2ba559317bb37d2e 100644 (file)
@@ -429,27 +429,6 @@ void rcu_user_enter(void)
 {
        rcu_eqs_enter(1);
 }
-
-/**
- * rcu_user_enter_after_irq - inform RCU that we are going to resume userspace
- * after the current irq returns.
- *
- * This is similar to rcu_user_enter() but in the context of a non-nesting
- * irq. After this call, RCU enters into idle mode when the interrupt
- * returns.
- */
-void rcu_user_enter_after_irq(void)
-{
-       unsigned long flags;
-       struct rcu_dynticks *rdtp;
-
-       local_irq_save(flags);
-       rdtp = &__get_cpu_var(rcu_dynticks);
-       /* Ensure this irq is interrupting a non-idle RCU state.  */
-       WARN_ON_ONCE(!(rdtp->dynticks_nesting & DYNTICK_TASK_MASK));
-       rdtp->dynticks_nesting = 1;
-       local_irq_restore(flags);
-}
 #endif /* CONFIG_RCU_USER_QS */
 
 /**
@@ -566,28 +545,6 @@ void rcu_user_exit(void)
 {
        rcu_eqs_exit(1);
 }
-
-/**
- * rcu_user_exit_after_irq - inform RCU that we won't resume to userspace
- * idle mode after the current non-nesting irq returns.
- *
- * This is similar to rcu_user_exit() but in the context of an irq.
- * This is called when the irq has interrupted a userspace RCU idle mode
- * context. When the current non-nesting interrupt returns after this call,
- * the CPU won't restore the RCU idle mode.
- */
-void rcu_user_exit_after_irq(void)
-{
-       unsigned long flags;
-       struct rcu_dynticks *rdtp;
-
-       local_irq_save(flags);
-       rdtp = &__get_cpu_var(rcu_dynticks);
-       /* Ensure we are interrupting an RCU idle mode. */
-       WARN_ON_ONCE(rdtp->dynticks_nesting & DYNTICK_TASK_NEST_MASK);
-       rdtp->dynticks_nesting += DYNTICK_TASK_EXIT_IDLE;
-       local_irq_restore(flags);
-}
 #endif /* CONFIG_RCU_USER_QS */
 
 /**