Skip to content

Commit

Permalink
rcu: Drop RCU_USER_QS in favor of NO_HZ_FULL
Browse files Browse the repository at this point in the history
The RCU_USER_QS Kconfig parameter is now just a synonym for NO_HZ_FULL,
so this commit eliminates RCU_USER_QS, replacing all uses with NO_HZ_FULL.

Reported-by: Frederic Weisbecker <[email protected]>
Signed-off-by: Paul E. McKenney <[email protected]>
Acked-by: Frederic Weisbecker <[email protected]>
  • Loading branch information
paulmck committed Jul 6, 2015
1 parent d770e55 commit d1ec4c3
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 17 deletions.
4 changes: 2 additions & 2 deletions include/linux/rcupdate.h
Original file line number Diff line number Diff line change
Expand Up @@ -309,15 +309,15 @@ static inline void rcu_sysrq_end(void)
}
#endif /* #else #ifdef CONFIG_RCU_STALL_COMMON */

#ifdef CONFIG_RCU_USER_QS
#ifdef CONFIG_NO_HZ_FULL
void rcu_user_enter(void);
void rcu_user_exit(void);
#else
static inline void rcu_user_enter(void) { }
static inline void rcu_user_exit(void) { }
static inline void rcu_user_hooks_switch(struct task_struct *prev,
struct task_struct *next) { }
#endif /* CONFIG_RCU_USER_QS */
#endif /* CONFIG_NO_HZ_FULL */

#ifdef CONFIG_RCU_NOCB_CPU
void rcu_init_nohz(void);
Expand Down
9 changes: 0 additions & 9 deletions init/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -538,15 +538,6 @@ config RCU_STALL_COMMON
config CONTEXT_TRACKING
bool

config RCU_USER_QS
bool
help
This option sets hooks on kernel / userspace boundaries and
puts RCU in extended quiescent state when the CPU runs in
userspace. It means that when a CPU runs in userspace, it is
excluded from the global RCU state machine and thus doesn't
try to keep the timer tick on for RCU.

config CONTEXT_TRACKING_FORCE
bool "Force context tracking"
depends on CONTEXT_TRACKING
Expand Down
8 changes: 4 additions & 4 deletions kernel/rcu/tree.c
Original file line number Diff line number Diff line change
Expand Up @@ -701,7 +701,7 @@ void rcu_idle_enter(void)
}
EXPORT_SYMBOL_GPL(rcu_idle_enter);

#ifdef CONFIG_RCU_USER_QS
#ifdef CONFIG_NO_HZ_FULL
/**
* rcu_user_enter - inform RCU that we are resuming userspace.
*
Expand All @@ -714,7 +714,7 @@ void rcu_user_enter(void)
{
rcu_eqs_enter(1);
}
#endif /* CONFIG_RCU_USER_QS */
#endif /* CONFIG_NO_HZ_FULL */

/**
* rcu_irq_exit - inform RCU that current CPU is exiting irq towards idle
Expand Down Expand Up @@ -828,7 +828,7 @@ void rcu_idle_exit(void)
}
EXPORT_SYMBOL_GPL(rcu_idle_exit);

#ifdef CONFIG_RCU_USER_QS
#ifdef CONFIG_NO_HZ_FULL
/**
* rcu_user_exit - inform RCU that we are exiting userspace.
*
Expand All @@ -839,7 +839,7 @@ void rcu_user_exit(void)
{
rcu_eqs_exit(1);
}
#endif /* CONFIG_RCU_USER_QS */
#endif /* CONFIG_NO_HZ_FULL */

/**
* rcu_irq_enter - inform RCU that current CPU is entering irq away from idle
Expand Down
2 changes: 0 additions & 2 deletions kernel/time/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -92,12 +92,10 @@ config NO_HZ_FULL
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
# We need at least one periodic CPU for timekeeping
depends on SMP
# RCU_USER_QS dependency
depends on HAVE_CONTEXT_TRACKING
# VIRT_CPU_ACCOUNTING_GEN dependency
depends on HAVE_VIRT_CPU_ACCOUNTING_GEN
select NO_HZ_COMMON
select RCU_USER_QS
select RCU_NOCB_CPU
select VIRT_CPU_ACCOUNTING_GEN
select IRQ_WORK
Expand Down

0 comments on commit d1ec4c3

Please sign in to comment.