rcu: Make RCU_FAST_NO_HZ take advantage of numbered callbacks
[sfrench/cifs-2.6.git] / kernel / rcutree.h
index b6c2335efbdf54fbc73bd61910ffc46eb8490eb8..96a27f922e92e1f1bb351d1a09083be47986bad8 100644 (file)
@@ -88,18 +88,13 @@ struct rcu_dynticks {
        int dynticks_nmi_nesting;   /* Track NMI nesting level. */
        atomic_t dynticks;          /* Even value for idle, else odd. */
 #ifdef CONFIG_RCU_FAST_NO_HZ
-       int dyntick_drain;          /* Prepare-for-idle state variable. */
-       unsigned long dyntick_holdoff;
-                                   /* No retries for the jiffy of failure. */
-       struct timer_list idle_gp_timer;
-                                   /* Wake up CPU sleeping with callbacks. */
-       unsigned long idle_gp_timer_expires;
-                                   /* When to wake up CPU (for repost). */
-       bool idle_first_pass;       /* First pass of attempt to go idle? */
+       bool all_lazy;              /* Are all CPU's CBs lazy? */
        unsigned long nonlazy_posted;
                                    /* # times non-lazy CBs posted to CPU. */
        unsigned long nonlazy_posted_snap;
                                    /* idle-period nonlazy_posted snapshot. */
+       unsigned long last_accelerate;
+                                   /* Last jiffy CBs were accelerated. */
        int tick_nohz_enabled_snap; /* Previously seen value from sysfs. */
 #endif /* #ifdef CONFIG_RCU_FAST_NO_HZ */
 };
@@ -521,7 +516,6 @@ static int __cpuinit rcu_spawn_one_boost_kthread(struct rcu_state *rsp,
                                                 struct rcu_node *rnp);
 #endif /* #ifdef CONFIG_RCU_BOOST */
 static void __cpuinit rcu_prepare_kthreads(int cpu);
-static void rcu_prepare_for_idle_init(int cpu);
 static void rcu_cleanup_after_idle(int cpu);
 static void rcu_prepare_for_idle(int cpu);
 static void rcu_idle_count_callbacks_posted(void);