提交 791875d1 编写于 作者: P Paul E. McKenney

rcu: Eliminate the unused __rcu_is_watching() function

The __rcu_is_watching() function is currently not used, aside from
to implement the rcu_is_watching() function.  This commit therefore
eliminates __rcu_is_watching(), which has the beneficial side-effect
of shrinking include/linux/rcupdate.h a bit.
Reported-by: NIngo Molnar <mingo@kernel.org>
Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
上级 d0df7a34
...@@ -204,10 +204,6 @@ do { \ ...@@ -204,10 +204,6 @@ do { \
rcu_note_voluntary_context_switch(current); \ rcu_note_voluntary_context_switch(current); \
} while (0) } while (0)
#if defined(CONFIG_DEBUG_LOCK_ALLOC) || defined(CONFIG_RCU_TRACE) || defined(CONFIG_SMP)
bool __rcu_is_watching(void);
#endif /* #if defined(CONFIG_DEBUG_LOCK_ALLOC) || defined(CONFIG_RCU_TRACE) || defined(CONFIG_SMP) */
/* /*
* Infrastructure to implement the synchronize_() primitives in * Infrastructure to implement the synchronize_() primitives in
* TREE_RCU and rcu_barrier_() primitives in TINY_RCU. * TREE_RCU and rcu_barrier_() primitives in TINY_RCU.
......
...@@ -232,22 +232,11 @@ static inline void rcu_scheduler_starting(void) ...@@ -232,22 +232,11 @@ static inline void rcu_scheduler_starting(void)
} }
#endif /* #else #if defined(CONFIG_DEBUG_LOCK_ALLOC) || defined(CONFIG_SRCU) */ #endif /* #else #if defined(CONFIG_DEBUG_LOCK_ALLOC) || defined(CONFIG_SRCU) */
#if defined(CONFIG_DEBUG_LOCK_ALLOC) || defined(CONFIG_RCU_TRACE)
static inline bool rcu_is_watching(void)
{
return __rcu_is_watching();
}
#else /* defined(CONFIG_DEBUG_LOCK_ALLOC) || defined(CONFIG_RCU_TRACE) */
static inline bool rcu_is_watching(void) static inline bool rcu_is_watching(void)
{ {
return true; return true;
} }
#endif /* #else defined(CONFIG_DEBUG_LOCK_ALLOC) || defined(CONFIG_RCU_TRACE) */
static inline void rcu_request_urgent_qs_task(struct task_struct *t) static inline void rcu_request_urgent_qs_task(struct task_struct *t)
{ {
} }
......
...@@ -59,19 +59,6 @@ void rcu_barrier_sched(void) ...@@ -59,19 +59,6 @@ void rcu_barrier_sched(void)
} }
EXPORT_SYMBOL(rcu_barrier_sched); EXPORT_SYMBOL(rcu_barrier_sched);
#if defined(CONFIG_DEBUG_LOCK_ALLOC) || defined(CONFIG_RCU_TRACE)
/*
* Test whether RCU thinks that the current CPU is idle.
*/
bool notrace __rcu_is_watching(void)
{
return true;
}
EXPORT_SYMBOL(__rcu_is_watching);
#endif /* defined(CONFIG_DEBUG_LOCK_ALLOC) || defined(CONFIG_RCU_TRACE) */
/* /*
* Helper function for rcu_sched_qs() and rcu_bh_qs(). * Helper function for rcu_sched_qs() and rcu_bh_qs().
* Also irqs are disabled to avoid confusion due to interrupt handlers * Also irqs are disabled to avoid confusion due to interrupt handlers
......
...@@ -1138,23 +1138,12 @@ void rcu_nmi_exit(void) ...@@ -1138,23 +1138,12 @@ void rcu_nmi_exit(void)
rcu_dynticks_eqs_enter(); rcu_dynticks_eqs_enter();
} }
/**
* __rcu_is_watching - are RCU read-side critical sections safe?
*
* Return true if RCU is watching the running CPU, which means that
* this CPU can safely enter RCU read-side critical sections. Unlike
* rcu_is_watching(), the caller of __rcu_is_watching() must have at
* least disabled preemption.
*/
bool notrace __rcu_is_watching(void)
{
return !rcu_dynticks_curr_cpu_in_eqs();
}
/** /**
* rcu_is_watching - see if RCU thinks that the current CPU is idle * rcu_is_watching - see if RCU thinks that the current CPU is idle
* *
* If the current CPU is in its idle loop and is neither in an interrupt * Return true if RCU is watching the running CPU, which means that this
* CPU can safely enter RCU read-side critical sections. In other words,
* if the current CPU is in its idle loop and is neither in an interrupt
* or NMI handler, return true. * or NMI handler, return true.
*/ */
bool notrace rcu_is_watching(void) bool notrace rcu_is_watching(void)
...@@ -1162,7 +1151,7 @@ bool notrace rcu_is_watching(void) ...@@ -1162,7 +1151,7 @@ bool notrace rcu_is_watching(void)
bool ret; bool ret;
preempt_disable_notrace(); preempt_disable_notrace();
ret = __rcu_is_watching(); ret = !rcu_dynticks_curr_cpu_in_eqs();
preempt_enable_notrace(); preempt_enable_notrace();
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册