lkml.org 
[lkml]   [2017]   [Jan]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH tip/core/rcu 19/20] rcu: Eliminate unused expedited_normal counter
    Date
    Expedited grace periods no longer fall back to normal grace periods
    in response to lock contention, given that expedited grace periods
    now use the rcu_node tree so as to avoid contention. This commit
    therfore removes the expedited_normal counter.

    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    ---
    Documentation/RCU/trace.txt | 5 +----
    kernel/rcu/tree.h | 1 -
    kernel/rcu/tree_trace.c | 3 +--
    3 files changed, 2 insertions(+), 7 deletions(-)

    diff --git a/Documentation/RCU/trace.txt b/Documentation/RCU/trace.txt
    index 00a3a38b375a..6549012033f9 100644
    --- a/Documentation/RCU/trace.txt
    +++ b/Documentation/RCU/trace.txt
    @@ -237,7 +237,7 @@ o "ktl" is the low-order 16 bits (in hexadecimal) of the count of

    The output of "cat rcu/rcu_preempt/rcuexp" looks as follows:

    -s=21872 wd1=0 wd2=0 wd3=5 n=0 enq=0 sc=21872
    +s=21872 wd1=0 wd2=0 wd3=5 enq=0 sc=21872

    These fields are as follows:

    @@ -249,9 +249,6 @@ o "wd1", "wd2", and "wd3" are the number of times that an attempt
    completed an expedited grace period that satisfies the attempted
    request. "Our work is done."

    -o "n" is number of times that a concurrent CPU-hotplug operation
    - forced a fallback to a normal grace period.
    -
    o "enq" is the number of quiescent states still outstanding.

    o "sc" is the number of times that the attempt to start a
    diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
    index fe98dd24adf8..8f750dffb0dd 100644
    --- a/kernel/rcu/tree.h
    +++ b/kernel/rcu/tree.h
    @@ -521,7 +521,6 @@ struct rcu_state {
    struct mutex exp_mutex; /* Serialize expedited GP. */
    struct mutex exp_wake_mutex; /* Serialize wakeup. */
    unsigned long expedited_sequence; /* Take a ticket. */
    - atomic_long_t expedited_normal; /* # fallbacks to normal. */
    atomic_t expedited_need_qs; /* # CPUs left to check in. */
    struct swait_queue_head expedited_wq; /* Wait for check-ins. */
    int ncpus_snap; /* # CPUs seen last time. */
    diff --git a/kernel/rcu/tree_trace.c b/kernel/rcu/tree_trace.c
    index b1f28972872c..2e932cd1da31 100644
    --- a/kernel/rcu/tree_trace.c
    +++ b/kernel/rcu/tree_trace.c
    @@ -194,9 +194,8 @@ static int show_rcuexp(struct seq_file *m, void *v)
    s2 += atomic_long_read(&rdp->exp_workdone2);
    s3 += atomic_long_read(&rdp->exp_workdone3);
    }
    - seq_printf(m, "s=%lu wd0=%lu wd1=%lu wd2=%lu wd3=%lu n=%lu enq=%d sc=%lu\n",
    + seq_printf(m, "s=%lu wd0=%lu wd1=%lu wd2=%lu wd3=%lu enq=%d sc=%lu\n",
    rsp->expedited_sequence, s0, s1, s2, s3,
    - atomic_long_read(&rsp->expedited_normal),
    atomic_read(&rsp->expedited_need_qs),
    rsp->expedited_sequence / 2);
    return 0;
    --
    2.5.2
    \
     
     \ /
      Last update: 2017-01-14 10:16    [W:3.557 / U:0.252 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site