lkml.org 
[lkml]   [2010]   [Apr]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH RFC tip/core/rcu 13/16] rcu: print boot-time console messages if RCU configs out of ordinary
    Date
    Print boot-time messages if tracing is enabled, if fanout is set
    to non-default values, if exact fanout is specified, if accelerated
    dyntick-idle grace periods have been enabled, if RCU-lockdep is enabled,
    if rcutorture has been boot-time enabled, if the CPU stall detector has
    been disabled, or if four-level hierarchy has been enabled.

    This is all for TREE_RCU and TREE_PREEMPT_RCU. TINY_RCU will be handled
    separately, if at all.

    Suggested-by: Josh Triplett <josh@joshtriplett.org>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    ---
    kernel/rcutree.c | 6 ------
    kernel/rcutree_plugin.h | 44 ++++++++++++++++++++++++++++++++++++++++++--
    2 files changed, 42 insertions(+), 8 deletions(-)

    diff --git a/kernel/rcutree.c b/kernel/rcutree.c
    index 595fb83..ec6196f 100644
    --- a/kernel/rcutree.c
    +++ b/kernel/rcutree.c
    @@ -1938,12 +1938,6 @@ void __init rcu_init(void)
    int cpu;

    rcu_bootup_announce();
    -#ifdef CONFIG_RCU_CPU_STALL_DETECTOR
    - printk(KERN_INFO "RCU-based detection of stalled CPUs is enabled.\n");
    -#endif /* #ifdef CONFIG_RCU_CPU_STALL_DETECTOR */
    -#if NUM_RCU_LVL_4 != 0
    - printk(KERN_INFO "Experimental four-level hierarchy is enabled.\n");
    -#endif /* #if NUM_RCU_LVL_4 != 0 */
    RCU_INIT_FLAVOR(&rcu_sched_state, rcu_sched_data);
    RCU_INIT_FLAVOR(&rcu_bh_state, rcu_bh_data);
    __rcu_init_preempt();
    diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h
    index f9bc83a..0ae2339 100644
    --- a/kernel/rcutree_plugin.h
    +++ b/kernel/rcutree_plugin.h
    @@ -26,6 +26,45 @@

    #include <linux/delay.h>

    +/*
    + * Check the RCU kernel configuration parameters and print informative
    + * messages about anything out of the ordinary. If you like #ifdef, you
    + * will love this function.
    + */
    +static void __init rcu_bootup_announce_oddness(void)
    +{
    +#ifdef CONFIG_RCU_TRACE
    + printk(KERN_INFO "\tRCU debugfs-based tracing is enabled.\n");
    +#endif
    +#if (defined(CONFIG_64BIT) && CONFIG_RCU_FANOUT != 64) || (!defined(CONFIG_64BIT) && CONFIG_RCU_FANOUT != 32)
    + printk(KERN_INFO "\tCONFIG_RCU_FANOUT set to non-default value of %d\n",
    + CONFIG_RCU_FANOUT);
    +#endif
    +#ifdef CONFIG_RCU_FANOUT_EXACT
    + printk(KERN_INFO "\tHierarchical RCU autobalancing is disabled.\n");
    +#endif
    +#ifdef CONFIG_RCU_FAST_NO_HZ
    + printk(KERN_INFO
    + "\tRCU dyntick-idle grace-period acceleration is enabled.\n");
    +#endif
    +#ifdef CONFIG_PROVE_RCU
    + printk(KERN_INFO "\tRCU lockdep checking is enabled.\n");
    +#endif
    +#ifdef CONFIG_RCU_TORTURE_TEST_RUNNABLE
    + printk(KERN_INFO "\tRCU torture testing starts during boot.\n");
    +#endif
    +#ifndef CONFIG_RCU_CPU_STALL_DETECTOR
    + printk(KERN_INFO
    + "\tRCU-based detection of stalled CPUs is disabled.\n");
    +#endif
    +#ifndef CONFIG_RCU_CPU_STALL_VERBOSE
    + printk(KERN_INFO "\tVerbose stalled-CPUs detection is disabled.\n");
    +#endif
    +#if NUM_RCU_LVL_4 != 0
    + printk(KERN_INFO "\tExperimental four-level hierarchy is enabled.\n");
    +#endif
    +}
    +
    #ifdef CONFIG_TREE_PREEMPT_RCU

    struct rcu_state rcu_preempt_state = RCU_STATE_INITIALIZER(rcu_preempt_state);
    @@ -38,8 +77,8 @@ static int rcu_preempted_readers_exp(struct rcu_node *rnp);
    */
    static void __init rcu_bootup_announce(void)
    {
    - printk(KERN_INFO
    - "Experimental preemptable hierarchical RCU implementation.\n");
    + printk(KERN_INFO "Preemptable hierarchical RCU implementation.\n");
    + rcu_bootup_announce_oddness();
    }

    /*
    @@ -757,6 +796,7 @@ void exit_rcu(void)
    static void __init rcu_bootup_announce(void)
    {
    printk(KERN_INFO "Hierarchical RCU implementation.\n");
    + rcu_bootup_announce_oddness();
    }

    /*
    --
    1.7.0


    \
     
     \ /
      Last update: 2010-04-15 20:19    [W:4.618 / U:1.952 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site