Received: by 10.223.176.46 with SMTP id f43csp3878611wra; Tue, 23 Jan 2018 00:12:34 -0800 (PST) X-Google-Smtp-Source: AH8x226MZh99laz8RvSN6dDTQboryn8b7mZZ+eyGyiUFFkBF7DA6/SG4xfGjPN+8HiFN5mKowTnt X-Received: by 10.101.98.26 with SMTP id d26mr8524357pgv.416.1516695154505; Tue, 23 Jan 2018 00:12:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516695154; cv=none; d=google.com; s=arc-20160816; b=aZt1NJ5iH+Hb6PFufYDa5JA9MlESu2njPQHq0ViMzgg0aYwViXHHZ/mhLCiN5HzlHh kqb6wLZzKERmziLgR+9VSsKOIkPmHAcFHgn+u6gvBHtVFg988zgs0zEpySWrNtzDvwB2 AiyOPzW0Ny7zakKs7sB8Y1YYtFWcdoJGaO1AXYh35kyxvuJpZdCSNSEDnmvYSb84WIDs zUNYUfsxQ5hguVM/CyvipxTxcPH3vwLwmxmccNR1pIY22dCnvFDm+QAD1vWBl/2ew/i1 7cta+jTQOfovEpKzQTw9CowMlCe7FBJolZCUUpWgHJwG65owb+QlGnu0NnCbkCd8FfFd KaTg== 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=Ep6i9Hng3U3dj3NL2owThg8hboh9TFZneCfvTq/lkHQ=; b=HYxrelTZSY7CGGSjdCjnz8b5P7dr4P/vkf6Orce6JKl18de5mXBkXTrvYFtmHTIHZb Rmbs+pQzG9wC3ffzNrR/SpVCzLEd1ofhNqjujjgwL1vwJsm9LhizVi3E5Lt3/3G2mlPF usb8x39cNEWfUSBEQUG1Mj48G0KukXn8ltCTR1Id+Fel6YxgQoGsWcpEhbMC8vK7HQHV M19793ZNnbsh2HEAi6BuWsG0xluv7AYCCYdBCiMl7vbj2aUDgkzw6ranvFmX+1xnvY5C 4aSK1rQwWrrx80e6fO7mTm+lpG0nEmlZKYJgPRLpCbpeUK8i0XO4EULTkzM5W8nIBcTt 2nnA== 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 5-v6si4373374plx.385.2018.01.23.00.12.20; Tue, 23 Jan 2018 00:12:34 -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 S1751381AbeAWILL (ORCPT + 99 others); Tue, 23 Jan 2018 03:11:11 -0500 Received: from szxga05-in.huawei.com ([45.249.212.191]:4715 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751086AbeAWIIv (ORCPT ); Tue, 23 Jan 2018 03:08:51 -0500 Received: from DGGEMS409-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id 96B6929C00DF1; Tue, 23 Jan 2018 16:08:36 +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:31 +0800 From: To: CC: , , , , Subject: [PATCH RFC 12/16] prcu: Add PRCU Kconfig parameter Date: Tue, 23 Jan 2018 15:59:37 +0800 Message-ID: <1516694381-20333-13-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 --- include/linux/prcu.h | 14 ++++++-------- init/Kconfig | 7 +++++++ kernel/rcu/Makefile | 3 ++- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/include/linux/prcu.h b/include/linux/prcu.h index cce967fd..bb20fa40 100644 --- a/include/linux/prcu.h +++ b/include/linux/prcu.h @@ -7,8 +7,7 @@ #include #include -#define CONFIG_PRCU - +#ifdef CONFIG_PRCU struct prcu_version_head { unsigned long long version; struct prcu_version_head *next; @@ -48,7 +47,6 @@ struct prcu_struct { struct completion barrier_completion; }; -#ifdef CONFIG_PRCU void prcu_read_lock(void); void prcu_read_unlock(void); void synchronize_prcu(void); @@ -62,11 +60,11 @@ void prcu_check_callbacks(void); #else /* #ifdef CONFIG_PRCU */ -#define prcu_read_lock() do {} while (0) -#define prcu_read_unlock() do {} while (0) -#define synchronize_prcu() do {} while (0) -#define call_prcu() do {} while (0) -#define prcu_barrier() do {} while (0) +#define prcu_read_lock rcu_read_lock +#define prcu_read_unlock rcu_read_unlock +#define synchronize_prcu synchronize_rcu +#define call_prcu call_rcu +#define prcu_barrier rcu_barrier #define prcu_init() do {} while (0) #define prcu_note_context_switch() do {} while (0) #define prcu_pending() 0 diff --git a/init/Kconfig b/init/Kconfig index 1d3475fc..c1fd80f9 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -565,6 +565,13 @@ config TASKS_RCU only voluntary context switch (not preemption!), idle, and user-mode execution as quiescent states. +config PRCU + bool + default y + help + This option selects the PRCU implementation based on a fast + consensus protocol. + config RCU_STALL_COMMON def_bool ( TREE_RCU || PREEMPT_RCU || RCU_TRACE ) help diff --git a/kernel/rcu/Makefile b/kernel/rcu/Makefile index 8791419c..9074b395 100644 --- a/kernel/rcu/Makefile +++ b/kernel/rcu/Makefile @@ -2,7 +2,7 @@ # and is generally not a function of system call inputs. KCOV_INSTRUMENT := n -obj-y += update.o sync.o prcu.o +obj-y += update.o sync.o obj-$(CONFIG_CLASSIC_SRCU) += srcu.o obj-$(CONFIG_TREE_SRCU) += srcutree.o obj-$(CONFIG_TINY_SRCU) += srcutiny.o @@ -12,4 +12,5 @@ obj-$(CONFIG_TREE_RCU) += tree.o obj-$(CONFIG_PREEMPT_RCU) += tree.o obj-$(CONFIG_TREE_RCU_TRACE) += tree_trace.o obj-$(CONFIG_TINY_RCU) += tiny.o +obj-$(CONFIG_PRCU) += prcu.o obj-$(CONFIG_RCU_NEED_SEGCBLIST) += rcu_segcblist.o -- 2.14.1.729.g59c0ea183