rcu: Remove !PREEMPT code from rcu_note_voluntary_context_switch()
Because RCU-tasks exists only in PREEMPT kernels and because RCU-sched no longer exists in PREEMPT kernels, it is no longer necessary for the rcu_note_voluntary_context_switch() macro to do anything for !PREEMPT kernels. This commit therefore removes !PREEMPT-related code from this macro, namely, the rcu_all_qs(). Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
parent
06462efc80
commit
4d232dfe1d
|
@ -150,18 +150,14 @@ static inline void rcu_init_nohz(void) { }
|
||||||
if (READ_ONCE((t)->rcu_tasks_holdout)) \
|
if (READ_ONCE((t)->rcu_tasks_holdout)) \
|
||||||
WRITE_ONCE((t)->rcu_tasks_holdout, false); \
|
WRITE_ONCE((t)->rcu_tasks_holdout, false); \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define rcu_note_voluntary_context_switch(t) \
|
#define rcu_note_voluntary_context_switch(t) rcu_tasks_qs(t)
|
||||||
do { \
|
|
||||||
rcu_all_qs(); \
|
|
||||||
rcu_tasks_qs(t); \
|
|
||||||
} while (0)
|
|
||||||
void call_rcu_tasks(struct rcu_head *head, rcu_callback_t func);
|
void call_rcu_tasks(struct rcu_head *head, rcu_callback_t func);
|
||||||
void synchronize_rcu_tasks(void);
|
void synchronize_rcu_tasks(void);
|
||||||
void exit_tasks_rcu_start(void);
|
void exit_tasks_rcu_start(void);
|
||||||
void exit_tasks_rcu_finish(void);
|
void exit_tasks_rcu_finish(void);
|
||||||
#else /* #ifdef CONFIG_TASKS_RCU */
|
#else /* #ifdef CONFIG_TASKS_RCU */
|
||||||
#define rcu_tasks_qs(t) do { } while (0)
|
#define rcu_tasks_qs(t) do { } while (0)
|
||||||
#define rcu_note_voluntary_context_switch(t) rcu_all_qs()
|
#define rcu_note_voluntary_context_switch(t) do { } while (0)
|
||||||
#define call_rcu_tasks call_rcu
|
#define call_rcu_tasks call_rcu
|
||||||
#define synchronize_rcu_tasks synchronize_rcu
|
#define synchronize_rcu_tasks synchronize_rcu
|
||||||
static inline void exit_tasks_rcu_start(void) { }
|
static inline void exit_tasks_rcu_start(void) { }
|
||||||
|
|
Loading…
Reference in New Issue