Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp3788422imm; Sun, 13 May 2018 20:19:07 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpj4TmyXNjYOrGZeupLJhnRWUBsyZvMfBICAgC7656SEP1c226VvF82GyKeooGVVKPwAar0 X-Received: by 2002:a17:902:7046:: with SMTP id h6-v6mr8014601plt.249.1526267947827; Sun, 13 May 2018 20:19:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526267947; cv=none; d=google.com; s=arc-20160816; b=ilBXJihEXUemkaWndvblXs09OUx1I0JZe8K39ZOTlbdUkdb9fOSIMOwNEWXfUfzJSm 1NeY/d6KPUF/CXsnh08vIiOXAO9uIgeyknoY09k95gruQJrTSpzk9leOKjnUaBZBbPuZ LynlHmtI/5BzbgW/btzGifOr+qVgjtWPnv34S1ycO4y2fg8Bz4lNUbCbAmnvEuf3JKc5 a5zI/7HzaKzZdYEAtRBJKdvE/OV7fvKu7YdAlu5QDGB2cQAjgsRIwa3U5O1VTWfnJtLt xAWgc6KvkJK0XjDhSFP96lV1wlR8ycZXDocfsdvPoUvU3dPtKGOTwptrtP4NruO3BRT2 qE/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=MPIiOfQ5iyDkRlQ3dl4yoyV5isVrJbTEnnewaTYZJkQ=; b=cbbzChL8EVLOajSM2ibQ6IBuyEteLs7wPZPuUv7xz5IvSEP+r583v7Q6VEh2Pur3Li ETKXeY3kGr0VtSHRbf1T1KzAJxLEXZvdVKJkrIUv6rwhMXMlE6EyTqRAJxK/BqzIXI+D 2FxDFgG/O0A7X3/+jqttJCxaPFGe2bXSPdDwLIoK1ArgOnBdaSNoAIWnCVyY2fW5K9T+ jqqoIbJtkfYTnelxloIrm6P82VIiRgdfE/w+oavqfJ95g6BEecqM9b7rUsCafpFCJX6P bwjYgY7tBHZ59KO0IGkiyiMUTiPWPj6IinN+ybj/ZmkiTW1mR828dPMg7vMa1nVId+SA uohg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes-org.20150623.gappssmtp.com header.s=20150623 header.b=MPxfgXsA; 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 n61-v6si1963380plb.256.2018.05.13.20.18.53; Sun, 13 May 2018 20:19:07 -0700 (PDT) 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; dkim=pass header.i=@joelfernandes-org.20150623.gappssmtp.com header.s=20150623 header.b=MPxfgXsA; 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 S1752447AbeENDQn (ORCPT + 99 others); Sun, 13 May 2018 23:16:43 -0400 Received: from mail-pl0-f65.google.com ([209.85.160.65]:35093 "EHLO mail-pl0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752350AbeENDQE (ORCPT ); Sun, 13 May 2018 23:16:04 -0400 Received: by mail-pl0-f65.google.com with SMTP id i5-v6so6504924plt.2 for ; Sun, 13 May 2018 20:16:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=MPIiOfQ5iyDkRlQ3dl4yoyV5isVrJbTEnnewaTYZJkQ=; b=MPxfgXsAswi6HGE9m6nC2J9YUv8XUljYBMi8dyj0hbBIpoEyhobym155/lUorKAJo6 jexRvFInGqdJGy4hOVnoHaiaB+1yMzWDvlwBT6T0v3oF/1DDnWxUAb8dVFlPyBQ5iOb0 hLJHfXQkvIaaORM7Iws9pSgghdBVKDw8D0/AUKBn5QMhEhZnbg2wrld0H7Hnoxv3Jhg9 Y2cDtA4pV8yJh+rtT8GfpTHKuY5eFvZ87YjbDe6GPI6J5vU2R2Ln57pixYZF2YWrTUVI u6iMRjieeGTJ7Jm6ykri9b0sL3PdLcN87l28Qvv7fJUHa/orsENFNhn5Ux8253SGZGER 5xtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=MPIiOfQ5iyDkRlQ3dl4yoyV5isVrJbTEnnewaTYZJkQ=; b=WdUQW1bxFSX2iNDeIwTXdtKQ8wkq/I0T+W3krVjckQyQWu9JXvUeOMKbRIkk/8eNg0 S+1WCyNwjfj4Uy2kOr+dKwD3mRQHmoHqM89m6HtDwCiFaVmdexJ+qcKrCqPoZMgsX7KY HEVzXVvu3SxvU3IoJQx6o/uld5ZWJ4Lulr5PnV89scvnpcMC9ws0BdWFSFJrf/ugpqhg jj4wsNQGUjk8VSB7bOc2Tws0kVJ80VF1QD3voeV/3d8qa20BtuKsJCXrSGyfdCnU4/Fw hOZQ/lNZieRzJAsNQULBs4O+b3IVu5RwIdJAq/hisBNZQQXgHzFbhvX/b9Ieh9X18m3g 8jPA== X-Gm-Message-State: ALKqPwcCaMI2NUb1okb3Vq30fwcvD2CrEDCL13kod0uIKPmpju3eyb88 WAiNsLEMDFmcuz2GtKpCqqWh5YhSBAU= X-Received: by 2002:a17:902:b692:: with SMTP id c18-v6mr7840615pls.307.1526267764355; Sun, 13 May 2018 20:16:04 -0700 (PDT) Received: from joelaf.mtv.corp.google.com ([2620:0:1000:1600:3122:ea9c:d178:eb]) by smtp.gmail.com with ESMTPSA id u14-v6sm19265635pfa.101.2018.05.13.20.16.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 13 May 2018 20:16:03 -0700 (PDT) From: "Joel Fernandes (Google)" To: linux-kernel@vger.kernel.org Cc: "Joel Fernandes (Google)" , "Paul E. McKenney" , Josh Triplett , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , byungchul.park@lge.com, kernel-team@android.com Subject: [PATCH RFC 6/8] rcu: Add back the Startedleaf tracepoint Date: Sun, 13 May 2018 20:15:39 -0700 Message-Id: <20180514031541.67247-7-joel@joelfernandes.org> X-Mailer: git-send-email 2.17.0.441.gb46fe60e1d-goog In-Reply-To: <20180514031541.67247-1-joel@joelfernandes.org> References: <20180514031541.67247-1-joel@joelfernandes.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In recent discussion [1], the check for whether a leaf believes RCU is not idle, is being added back to funnel locking code, to avoid more locking. In this we are marking the leaf node for a future grace-period and bailing out since a GP is currently in progress. However the tracepoint is missing. Lets add it back. Also add a small comment about why we do this check (basically the point is to avoid locking intermediate nodes unnecessarily) and clarify the comments in the trace event header now that we are doing traversal of one or more intermediate nodes. [1] http://lkml.kernel.org/r/20180513190906.GL26088@linux.vnet.ibm.com Signed-off-by: Joel Fernandes (Google) --- include/trace/events/rcu.h | 4 ++-- kernel/rcu/tree.c | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/include/trace/events/rcu.h b/include/trace/events/rcu.h index 539900a9f8c7..dc0bd11739c7 100644 --- a/include/trace/events/rcu.h +++ b/include/trace/events/rcu.h @@ -91,8 +91,8 @@ TRACE_EVENT(rcu_grace_period, * * "Startleaf": Request a grace period based on leaf-node data. * "Prestarted": Someone beat us to the request - * "Startedleaf": Leaf-node start proved sufficient. - * "Startedleafroot": Leaf-node start proved sufficient after checking root. + * "Startedleaf": Leaf and one or more non-root nodes marked for future start. + * "Startedleafroot": all non-root nodes from leaf to root marked for future start. * "Startedroot": Requested a nocb grace period based on root-node data. * "NoGPkthread": The RCU grace-period kthread has not yet started. * "StartWait": Start waiting for the requested grace period. diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 40670047d22c..8401a253e7de 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -1593,8 +1593,17 @@ static bool rcu_start_this_gp(struct rcu_node *rnp, struct rcu_data *rdp, goto unlock_out; } rnp_node->gp_seq_needed = gp_seq_start; - if (rcu_seq_state(rcu_seq_current(&rnp->gp_seq))) + + /* + * Check if leaf believes a GP is in progress, if yes we can + * bail and avoid more locking. We have already marked the leaf. + */ + if (rcu_seq_state(rcu_seq_current(&rnp->gp_seq))) { + trace_rcu_this_gp(rnp_node, rdp, gp_seq_start, + TPS("Startedleaf")); goto unlock_out; + } + if (rnp_node != rnp && rnp_node->parent != NULL) raw_spin_unlock_rcu_node(rnp_node); if (!rnp_node->parent) { -- 2.17.0.441.gb46fe60e1d-goog