lkml.org 
[lkml]   [2015]   [Feb]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 RFC tip/core/rcu 3/4] rcu: Update from rcu_expedited variable to rcu_gp_is_expedited()
    Date
    From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>

    This commit updates open-coded tests of the rcu_expedited variable
    to instead use rcu_gp_is_expedited().

    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    ---
    kernel/rcu/srcu.c | 2 +-
    kernel/rcu/tree.c | 9 +++++----
    kernel/rcu/tree_plugin.h | 2 +-
    3 files changed, 7 insertions(+), 6 deletions(-)

    diff --git a/kernel/rcu/srcu.c b/kernel/rcu/srcu.c
    index 81f53b504c18..cad76e76b4e7 100644
    --- a/kernel/rcu/srcu.c
    +++ b/kernel/rcu/srcu.c
    @@ -490,7 +490,7 @@ static void __synchronize_srcu(struct srcu_struct *sp, int trycount)
    */
    void synchronize_srcu(struct srcu_struct *sp)
    {
    - __synchronize_srcu(sp, rcu_expedited
    + __synchronize_srcu(sp, rcu_gp_is_expedited()
    ? SYNCHRONIZE_SRCU_EXP_TRYCOUNT
    : SYNCHRONIZE_SRCU_TRYCOUNT);
    }
    diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
    index 715e7bb35852..5fb9888af6d5 100644
    --- a/kernel/rcu/tree.c
    +++ b/kernel/rcu/tree.c
    @@ -3064,7 +3064,7 @@ void synchronize_sched(void)
    "Illegal synchronize_sched() in RCU-sched read-side critical section");
    if (rcu_blocking_is_gp())
    return;
    - if (rcu_expedited)
    + if (rcu_gp_is_expedited())
    synchronize_sched_expedited();
    else
    wait_rcu_gp(call_rcu_sched);
    @@ -3091,7 +3091,7 @@ void synchronize_rcu_bh(void)
    "Illegal synchronize_rcu_bh() in RCU-bh read-side critical section");
    if (rcu_blocking_is_gp())
    return;
    - if (rcu_expedited)
    + if (rcu_gp_is_expedited())
    synchronize_rcu_bh_expedited();
    else
    wait_rcu_gp(call_rcu_bh);
    @@ -3783,11 +3783,12 @@ static int rcu_pm_notify(struct notifier_block *self,
    case PM_HIBERNATION_PREPARE:
    case PM_SUSPEND_PREPARE:
    if (nr_cpu_ids <= 256) /* Expediting bad for large systems. */
    - rcu_expedited = 1;
    + rcu_expedite_gp();
    break;
    case PM_POST_HIBERNATION:
    case PM_POST_SUSPEND:
    - rcu_expedited = 0;
    + if (nr_cpu_ids <= 256) /* Expediting bad for large systems. */
    + rcu_unexpedite_gp();
    break;
    default:
    break;
    diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
    index 65629cc3c6cf..d11612ff3daa 100644
    --- a/kernel/rcu/tree_plugin.h
    +++ b/kernel/rcu/tree_plugin.h
    @@ -572,7 +572,7 @@ void synchronize_rcu(void)
    "Illegal synchronize_rcu() in RCU read-side critical section");
    if (!rcu_scheduler_active)
    return;
    - if (rcu_expedited)
    + if (rcu_gp_is_expedited())
    synchronize_rcu_expedited();
    else
    wait_rcu_gp(call_rcu);
    --
    1.8.1.5


    \
     
     \ /
      Last update: 2015-02-20 06:21    [W:3.110 / U:0.528 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site