From: Paul E. McKenney Date: Wed, 7 Oct 2015 23:05:21 +0000 (-0700) Subject: Merge branches 'fixes.2015.10.06a' and 'exp.2015.10.07a' into HEAD X-Git-Tag: v4.4-rc1~158^2~2^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d2856b046d2ce2bfb664727cb8671ad0e371bd6c;p=thirdparty%2Fkernel%2Flinux.git Merge branches 'fixes.2015.10.06a' and 'exp.2015.10.07a' into HEAD exp.2015.10.07a: Reduce OS jitter of RCU-sched expedited grace periods. fixes.2015.10.06a: Miscellaneous fixes. --- d2856b046d2ce2bfb664727cb8671ad0e371bd6c diff --cc kernel/rcu/tree.h index 674ebbc3e406e,191aa36785757..9fb4e238d4dca --- a/kernel/rcu/tree.h +++ b/kernel/rcu/tree.h @@@ -457,7 -469,9 +462,8 @@@ struct rcu_state /* shut bogus gcc warning) */ u8 flavor_mask; /* bit in flavor mask. */ struct rcu_data __percpu *rda; /* pointer of percu rcu_data. */ - void (*call)(struct rcu_head *head, /* call_rcu() flavor. */ - void (*func)(struct rcu_head *head)); + call_rcu_func_t call; /* call_rcu() flavor. */ + int ncpus; /* # CPUs seen so far. */ /* The following fields are guarded by the root rcu_node's lock. */ @@@ -573,9 -589,10 +580,10 @@@ static bool rcu_preempt_has_tasks(struc #endif /* #ifdef CONFIG_HOTPLUG_CPU */ static void rcu_print_detail_task_stall(struct rcu_state *rsp); static int rcu_print_task_stall(struct rcu_node *rnp); + static int rcu_print_task_exp_stall(struct rcu_node *rnp); static void rcu_preempt_check_blocked_tasks(struct rcu_node *rnp); static void rcu_preempt_check_callbacks(void); -void call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu)); +void call_rcu(struct rcu_head *head, rcu_callback_t func); static void __init __rcu_init_preempt(void); static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags); static void rcu_preempt_boost_start_gp(struct rcu_node *rnp);