aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/rcu/tree.c9
-rw-r--r--kernel/rcu/tree_plugin.h31
2 files changed, 34 insertions, 6 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index b01a02e7a0b7..ac8dce15fd74 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -536,9 +536,12 @@ void rcu_all_qs(void)
536} 536}
537EXPORT_SYMBOL_GPL(rcu_all_qs); 537EXPORT_SYMBOL_GPL(rcu_all_qs);
538 538
539static long blimit = 10; /* Maximum callbacks per rcu_do_batch. */ 539#define DEFAULT_RCU_BLIMIT 10 /* Maximum callbacks per rcu_do_batch. */
540static long qhimark = 10000; /* If this many pending, ignore blimit. */ 540static long blimit = DEFAULT_RCU_BLIMIT;
541static long qlowmark = 100; /* Once only this many pending, use blimit. */ 541#define DEFAULT_RCU_QHIMARK 10000 /* If this many pending, ignore blimit. */
542static long qhimark = DEFAULT_RCU_QHIMARK;
543#define DEFAULT_RCU_QLOMARK 100 /* Once only this many pending, use blimit. */
544static long qlowmark = DEFAULT_RCU_QLOMARK;
542 545
543module_param(blimit, long, 0444); 546module_param(blimit, long, 0444);
544module_param(qhimark, long, 0444); 547module_param(qhimark, long, 0444);
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
index eb5ebdce25ff..9cb3dff78b6f 100644
--- a/kernel/rcu/tree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
@@ -79,7 +79,9 @@ static void __init rcu_bootup_announce_oddness(void)
79 pr_info("\tHierarchical RCU autobalancing is disabled.\n"); 79 pr_info("\tHierarchical RCU autobalancing is disabled.\n");
80 if (IS_ENABLED(CONFIG_RCU_FAST_NO_HZ)) 80 if (IS_ENABLED(CONFIG_RCU_FAST_NO_HZ))
81 pr_info("\tRCU dyntick-idle grace-period acceleration is enabled.\n"); 81 pr_info("\tRCU dyntick-idle grace-period acceleration is enabled.\n");
82 if (IS_ENABLED(CONFIG_PROVE_RCU)) 82 if (IS_ENABLED(CONFIG_PROVE_RCU_REPEATEDLY))
83 pr_info("\tRCU lockdep checking is permanently enabled.\n");
84 else if (IS_ENABLED(CONFIG_PROVE_RCU))
83 pr_info("\tRCU lockdep checking is enabled.\n"); 85 pr_info("\tRCU lockdep checking is enabled.\n");
84 if (RCU_NUM_LVLS >= 4) 86 if (RCU_NUM_LVLS >= 4)
85 pr_info("\tFour(or more)-level hierarchy is enabled.\n"); 87 pr_info("\tFour(or more)-level hierarchy is enabled.\n");
@@ -90,8 +92,31 @@ static void __init rcu_bootup_announce_oddness(void)
90 pr_info("\tBoot-time adjustment of leaf fanout to %d.\n", rcu_fanout_leaf); 92 pr_info("\tBoot-time adjustment of leaf fanout to %d.\n", rcu_fanout_leaf);
91 if (nr_cpu_ids != NR_CPUS) 93 if (nr_cpu_ids != NR_CPUS)
92 pr_info("\tRCU restricting CPUs from NR_CPUS=%d to nr_cpu_ids=%d.\n", NR_CPUS, nr_cpu_ids); 94 pr_info("\tRCU restricting CPUs from NR_CPUS=%d to nr_cpu_ids=%d.\n", NR_CPUS, nr_cpu_ids);
93 if (IS_ENABLED(CONFIG_RCU_BOOST)) 95#ifdef CONFIG_RCU_BOOST
94 pr_info("\tRCU kthread priority: %d.\n", kthread_prio); 96 pr_info("\tRCU priority boosting: priority %d delay %d ms.\n", kthread_prio, CONFIG_RCU_BOOST_DELAY);
97#endif
98 if (blimit != DEFAULT_RCU_BLIMIT)
99 pr_info("\tBoot-time adjustment of callback invocation limit to %ld.\n", blimit);
100 if (qhimark != DEFAULT_RCU_QHIMARK)
101 pr_info("\tBoot-time adjustment of callback high-water mark to %ld.\n", qhimark);
102 if (qlowmark != DEFAULT_RCU_QLOMARK)
103 pr_info("\tBoot-time adjustment of callback low-water mark to %ld.\n", qlowmark);
104 if (jiffies_till_first_fqs != ULONG_MAX)
105 pr_info("\tBoot-time adjustment of first FQS scan delay to %ld jiffies.\n", jiffies_till_first_fqs);
106 if (jiffies_till_next_fqs != ULONG_MAX)
107 pr_info("\tBoot-time adjustment of subsequent FQS scan delay to %ld jiffies.\n", jiffies_till_next_fqs);
108 if (rcu_kick_kthreads)
109 pr_info("\tKick kthreads if too-long grace period.\n");
110 if (IS_ENABLED(CONFIG_DEBUG_OBJECTS_RCU_HEAD))
111 pr_info("\tRCU callback double-/use-after-free debug enabled.\n");
112 if (IS_ENABLED(CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT))
113 pr_info("\tRCU debug GP pre-init slowdown %d jiffies.\n", gp_preinit_delay);
114 if (IS_ENABLED(CONFIG_RCU_TORTURE_TEST_SLOW_INIT))
115 pr_info("\tRCU debug GP init slowdown %d jiffies.\n", gp_init_delay);
116 if (IS_ENABLED(CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP))
117 pr_info("\tRCU debug GP init slowdown %d jiffies.\n", gp_cleanup_delay);
118 if (IS_ENABLED(CONFIG_RCU_EQS_DEBUG))
119 pr_info("\tRCU debug extended QS entry/exit.\n");
95 rcupdate_announce_bootup_oddness(); 120 rcupdate_announce_bootup_oddness();
96} 121}
97 122