lkml.org 
[lkml]   [2019]   [Mar]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH tip/core/rcu 10/18] rcu: Report error for bad rcu_nocbs= parameter values
    Date
    This commit prints a console message when cpulist_parse() reports a
    bad list of CPUs, and sets all CPUs' bits in that case. The reason for
    setting all CPUs' bits is that this is the safe(r) choice for real-time
    workloads, which would normally be the ones using the rcu_nocbs= kernel
    boot parameter. Either way, later RCU console log messages list the
    actual set of CPUs whose RCU callbacks will be offloaded.

    Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
    ---
    kernel/rcu/tree_plugin.h | 12 ++++++++++--
    1 file changed, 10 insertions(+), 2 deletions(-)

    diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
    index ed4a6dabf31d..f0aeb7416dcc 100644
    --- a/kernel/rcu/tree_plugin.h
    +++ b/kernel/rcu/tree_plugin.h
    @@ -1772,14 +1772,22 @@ static void zero_cpu_stall_ticks(struct rcu_data *rdp)
    */


    -/* Parse the boot-time rcu_nocb_mask CPU list from the kernel parameters. */
    +/*
    + * Parse the boot-time rcu_nocb_mask CPU list from the kernel parameters.
    + * The string after the "rcu_nocbs=" is either "all" for all CPUs, or a
    + * comma-separated list of CPUs and/or CPU ranges. If an invalid list is
    + * given, a warning is emitted and all CPUs are offloaded.
    + */
    static int __init rcu_nocb_setup(char *str)
    {
    alloc_bootmem_cpumask_var(&rcu_nocb_mask);
    if (!strcasecmp(str, "all"))
    cpumask_setall(rcu_nocb_mask);
    else
    - cpulist_parse(str, rcu_nocb_mask);
    + if (cpulist_parse(str, rcu_nocb_mask)) {
    + pr_warn("rcu_nocbs= bad CPU range, all CPUs set\n");
    + cpumask_setall(rcu_nocb_mask);
    + }
    return 1;
    }
    __setup("rcu_nocbs=", rcu_nocb_setup);
    --
    2.17.1
    \
     
     \ /
      Last update: 2019-03-27 00:14    [W:3.828 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site