Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 288559
b: refs/heads/master
c: 768dfff
h: refs/heads/master
i:
  288557: e23dcf5
  288555: 40e91c2
  288551: a84900c
  288543: a48f994
v: v3
  • Loading branch information
Paul E. McKenney authored and Paul E. McKenney committed Feb 21, 2012
1 parent 17e0cad commit c65e5f6
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: afef20540f7cd1ea91bc1ac20be238389eee4003
refs/heads/master: 768dfffdffbfcc07d6927bdd642c714c0dd64c99
4 changes: 0 additions & 4 deletions trunk/include/linux/rcutiny.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,9 @@

#include <linux/cache.h>

#ifdef CONFIG_RCU_BOOST
static inline void rcu_init(void)
{
}
#else /* #ifdef CONFIG_RCU_BOOST */
void rcu_init(void);
#endif /* #else #ifdef CONFIG_RCU_BOOST */

static inline void rcu_barrier_bh(void)
{
Expand Down
15 changes: 12 additions & 3 deletions trunk/kernel/rcutiny_plugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -914,7 +914,8 @@ static void rcu_preempt_process_callbacks(void)
static void invoke_rcu_callbacks(void)
{
have_rcu_kthread_work = 1;
wake_up(&rcu_kthread_wq);
if (rcu_kthread_task != NULL)
wake_up(&rcu_kthread_wq);
}

#ifdef CONFIG_RCU_TRACE
Expand Down Expand Up @@ -975,12 +976,16 @@ early_initcall(rcu_spawn_kthreads);

#else /* #ifdef CONFIG_RCU_BOOST */

/* Hold off callback invocation until early_initcall() time. */
static int rcu_scheduler_fully_active __read_mostly;

/*
* Start up softirq processing of callbacks.
*/
void invoke_rcu_callbacks(void)
{
raise_softirq(RCU_SOFTIRQ);
if (rcu_scheduler_fully_active)
raise_softirq(RCU_SOFTIRQ);
}

#ifdef CONFIG_RCU_TRACE
Expand All @@ -995,10 +1000,14 @@ static bool rcu_is_callbacks_kthread(void)

#endif /* #ifdef CONFIG_RCU_TRACE */

void rcu_init(void)
static int __init rcu_scheduler_really_started(void)
{
rcu_scheduler_fully_active = 1;
open_softirq(RCU_SOFTIRQ, rcu_process_callbacks);
raise_softirq(RCU_SOFTIRQ); /* Invoke any callbacks from early boot. */
return 0;
}
early_initcall(rcu_scheduler_really_started);

#endif /* #else #ifdef CONFIG_RCU_BOOST */

Expand Down

0 comments on commit c65e5f6

Please sign in to comment.