| .. | .. |
|---|
| 413 | 413 | */ |
|---|
| 414 | 414 | extern struct rcu_state rcu_sched_state; |
|---|
| 415 | 415 | |
|---|
| 416 | +#ifndef CONFIG_PREEMPT_RT_FULL |
|---|
| 416 | 417 | extern struct rcu_state rcu_bh_state; |
|---|
| 418 | +#endif |
|---|
| 417 | 419 | |
|---|
| 418 | 420 | #ifdef CONFIG_PREEMPT_RCU |
|---|
| 419 | 421 | extern struct rcu_state rcu_preempt_state; |
|---|
| .. | .. |
|---|
| 421 | 423 | |
|---|
| 422 | 424 | int rcu_dynticks_snap(struct rcu_dynticks *rdtp); |
|---|
| 423 | 425 | |
|---|
| 424 | | -#ifdef CONFIG_RCU_BOOST |
|---|
| 425 | 426 | DECLARE_PER_CPU(unsigned int, rcu_cpu_kthread_status); |
|---|
| 426 | 427 | DECLARE_PER_CPU(int, rcu_cpu_kthread_cpu); |
|---|
| 427 | 428 | DECLARE_PER_CPU(unsigned int, rcu_cpu_kthread_loops); |
|---|
| 428 | 429 | DECLARE_PER_CPU(char, rcu_cpu_has_work); |
|---|
| 429 | | -#endif /* #ifdef CONFIG_RCU_BOOST */ |
|---|
| 430 | 430 | |
|---|
| 431 | 431 | #ifndef RCU_TREE_NONCORE |
|---|
| 432 | 432 | |
|---|
| .. | .. |
|---|
| 449 | 449 | int ncheck); |
|---|
| 450 | 450 | static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags); |
|---|
| 451 | 451 | static void rcu_preempt_boost_start_gp(struct rcu_node *rnp); |
|---|
| 452 | | -static void invoke_rcu_callbacks_kthread(void); |
|---|
| 453 | 452 | static bool rcu_is_callbacks_kthread(void); |
|---|
| 453 | +static void rcu_cpu_kthread_setup(unsigned int cpu); |
|---|
| 454 | 454 | #ifdef CONFIG_RCU_BOOST |
|---|
| 455 | 455 | static int rcu_spawn_one_boost_kthread(struct rcu_state *rsp, |
|---|
| 456 | 456 | struct rcu_node *rnp); |
|---|