Received: by 10.223.176.46 with SMTP id f43csp3879073wra; Tue, 23 Jan 2018 00:13:07 -0800 (PST) X-Google-Smtp-Source: AH8x2249aQbuXoXYBZOMFKHOcmLdvNrBitT0ROaSeK8Ta6UA1JwoJmaqvK+W3qjauFIZ6V/BGCz4 X-Received: by 10.99.165.87 with SMTP id r23mr8281336pgu.93.1516695187479; Tue, 23 Jan 2018 00:13:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516695187; cv=none; d=google.com; s=arc-20160816; b=jqC0qn7MboFnBT50nCb1CRpkBsp6H1DWonEriPT+OCdd1mtTGb+tEjip555ci4oxDk uN1m+bC5wpNRtjcf8z3fIKtyI2iyMEdmFgBH7iJHbPn5yy1jy2YISJUU3vMu+QQcxmz1 JtihZXGalifwIyqScPo4dIOUiwB090KStL+NcRfgD9Ke+epadSs3UaqE/bp4M6dALMN4 WAs3tpVUINTla4SCBeym4ToBeKbQTasw8SnBvcMYSfB86NQOAPhVRVZ3h9XzXiJ5DXa5 YqJenza9AtoAIgJirpRrQBwGmOoURIt86919ycn6Du0Rsl9Clezr3M738kxyFCXQdnv/ lM0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:arc-authentication-results; bh=eftEdsuxE2oebac7ZB5eOAuRs7plGaiyAa684wW10gU=; b=MG+mrkswmUAWoNa3LGeH/EHs32nCCVE3RDTh8Z/qnpNzIG4v3O0cY3V5DDlpm9zQTM o6RYZP5RG/sMM9cV0TWR3rlaFp1A+dBfTJvZzwCKss+Dv71QY+OxUnfHYeoyeHh+UWSP SuOWE/yd3T+cNPbq5pBPll4KmIgdemOlYEKqvygzj+Tu9uUS/YjJl+wef2gVRiPSkdO+ 0TsH+dResV/ZLU3hl33BAFlLZv4SchduJvQC/fjz9mIlJxa1bCdC7SDSlcw0Q/yzWx6f k3BgATkVBUVe7Ehjhonx8OLpG8AFniwTJRs7mGRoff19eB8Y8NtVKkB/I+wHK9J4TqYP Aagg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n10si13685540pgs.314.2018.01.23.00.12.53; Tue, 23 Jan 2018 00:13:07 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751394AbeAWILf (ORCPT + 99 others); Tue, 23 Jan 2018 03:11:35 -0500 Received: from szxga06-in.huawei.com ([45.249.212.32]:38687 "EHLO huawei.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1751241AbeAWIIs (ORCPT ); Tue, 23 Jan 2018 03:08:48 -0500 Received: from DGGEMS409-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 2D19357C2D080; Tue, 23 Jan 2018 16:08:32 +0800 (CST) Received: from huawei.com (10.175.102.37) by DGGEMS409-HUB.china.huawei.com (10.3.19.209) with Microsoft SMTP Server id 14.3.361.1; Tue, 23 Jan 2018 16:08:27 +0800 From: To: CC: , , , , Subject: [PATCH RFC 04/16] rcuperf: Add PRCU rcu_perf_ops Date: Tue, 23 Jan 2018 15:59:29 +0800 Message-ID: <1516694381-20333-5-git-send-email-lianglihao@huawei.com> X-Mailer: git-send-email 1.7.12.4 In-Reply-To: <1516694381-20333-1-git-send-email-lianglihao@huawei.com> References: <1516694381-20333-1-git-send-email-lianglihao@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.175.102.37] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Lihao Liang Signed-off-by: Lihao Liang --- 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 #include #include +#include #include #include #include @@ -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