lkml.org 
[lkml]   [2018]   [Jan]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH RFC 04/16] rcuperf: Add PRCU rcu_perf_ops
    Date
    From: Lihao Liang <lianglihao@huawei.com>

    Signed-off-by: Lihao Liang <lianglihao@huawei.com>
    ---
    kernel/rcu/rcuperf.c | 31 ++++++++++++++++++++++++++++++-
    1 file changed, 30 insertions(+), 1 deletion(-)

    diff --git a/kernel/rcu/rcuperf.c b/kernel/rcu/rcuperf.c
    index a4a86fb4..ea80fa3e 100644
    --- a/kernel/rcu/rcuperf.c
    +++ b/kernel/rcu/rcuperf.c
    @@ -28,6 +28,7 @@
    #include <linux/spinlock.h>
    #include <linux/smp.h>
    #include <linux/rcupdate.h>
    +#include <linux/prcu.h>
    #include <linux/interrupt.h>
    #include <linux/sched.h>
    #include <uapi/linux/sched/types.h>
    @@ -304,6 +305,34 @@ static bool __maybe_unused torturing_tasks(void)

    #endif /* #else #ifdef CONFIG_TASKS_RCU */

    +/*
    + * Definitions for prcu perf testing.
    + */
    +
    +static int prcu_perf_read_lock(void) __acquires(RCU)
    +{
    + prcu_read_lock();
    + return 0;
    +}
    +
    +static void prcu_perf_read_unlock(int idx) __releases(RCU)
    +{
    + prcu_read_unlock();
    +}
    +
    +static struct rcu_perf_ops prcu_ops = {
    + .ptype = PRCU_FLAVOR,
    + .init = rcu_sync_perf_init,
    + .readlock = prcu_perf_read_lock,
    + .readunlock = prcu_perf_read_unlock,
    + .started = rcu_no_completed,
    + .completed = rcu_no_completed,
    + .exp_completed = rcu_no_completed,
    + .sync = synchronize_prcu,
    + .exp_sync = synchronize_prcu,
    + .name = "prcu"
    +};
    +
    /*
    * If performance tests complete, wait for shutdown to commence.
    */
    @@ -554,7 +583,7 @@ rcu_perf_init(void)
    long i;
    int firsterr = 0;
    static struct rcu_perf_ops *perf_ops[] = {
    - &rcu_ops, &rcu_bh_ops, &srcu_ops, &sched_ops,
    + &rcu_ops, &rcu_bh_ops, &srcu_ops, &sched_ops, &prcu_ops,
    RCUPERF_TASKS_OPS
    };

    --
    2.14.1.729.g59c0ea183
    \
     
     \ /
      Last update: 2018-01-23 09:12    [W:3.116 / U:0.308 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site