Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp474551imm; Tue, 22 May 2018 23:40:50 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrDXJN/ZEdlPAa3z76iXkArC/3QTTTpfCkxcNDzhifDncYavQzpH78RAGDFtQJOXssrrhZR X-Received: by 2002:a62:bd2:: with SMTP id 79-v6mr1635737pfl.4.1527057650631; Tue, 22 May 2018 23:40:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527057650; cv=none; d=google.com; s=arc-20160816; b=xZr5xIlLemJ9sz+IjCS62XjZduMrG2A7dFNvP/nUsCYcfFktvgxrUWxUGVP89zyYkZ 6L2aNdaF8V6uBtT76yBr26UJb94ymHgZ5cvXkU4jjSeU8pEcoSZQotr+i0/f8Qqc4nkT ZiIAo7xwQavpp/Qk0+s2OfvFYblcbiQj7ZUY3DPS8J5APZ+yzwZbGK7bYEn79+AYy3md dXyGWK3QFhaxBkWh9neVSaz/Zv5m7Ps2AK+D/C7Js1fgjMHaoU/B0rO02XwcjE1eVGbp rvD562tWdq6CIg1REU8S6kHPgMSI0z8LgSP7KDAlSVBuPuhs5tqzEYAW306x0n+XRJ4B 8alw== 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=2StpPjAwpUkcFuyJYohR2Q8qsmYs67xdWnzx1EtEdh4=; b=Grdvs4OoJiFy6BUP1FF1mWg3Qi3U7W9/VlQiwauOfkZFwRSGHRB2SDPAOCIRxXiVbn agNC9TX2rAw6TV0fSqHk3mia+rkytcTYxMg7biyTIyufR7pVovtbcjiA3uLHyyNYL+5a N5vy83/f1EP2qOIZaQE3GLElDLSr6KLNxK33vtcbj8aGxPKZIQTAoUF84/IgIBAUxcGC u3nmh5qCvXfQ+FBIAAqOXEUCJWiThxdiOIaAYiFoS3J/wvaE/JG0oVrlNCG3kA69jxzY 9cMTuDj77aToRVCqYGmHo8N3wPA4lEfKTssmOE4U5nw09Y96BsKq9Xb7+PWUOw8H7vEe CVqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=qkUhoz+7; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w33-v6si17733953plb.431.2018.05.22.23.40.36; Tue, 22 May 2018 23:40:50 -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=@google.com header.s=20161025 header.b=qkUhoz+7; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754160AbeEWGjA (ORCPT + 99 others); Wed, 23 May 2018 02:39:00 -0400 Received: from mail-pl0-f65.google.com ([209.85.160.65]:32965 "EHLO mail-pl0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754111AbeEWGii (ORCPT ); Wed, 23 May 2018 02:38:38 -0400 Received: by mail-pl0-f65.google.com with SMTP id n10-v6so12405219plp.0 for ; Tue, 22 May 2018 23:38:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=2StpPjAwpUkcFuyJYohR2Q8qsmYs67xdWnzx1EtEdh4=; b=qkUhoz+762d1HXtnj3SZZoWsMn0pPZTklY7Uoyp34aTwtexFf2ad4qCmcLVm+hmsse JRQWH+ZkS4dtkIsW8DfiVMqQ4ZdpDEvaaSdRrqqg+q/w9vIFSwAu0fz5Doi0jP7eAXu8 b4aakrK6noMZ2fjeIwf6zatfwt26u65PzBUkajqPndarJ5+pfqv8Z6CDFwX2gf3pb5RA EioA+hE+lGdmwGb22wJKioteBEv+I5qXCAIwHUh0Q8DOJA0aurme2F7ddtJVGOtzpj1j UWgCtFUBokIQmt/OKl2nWWdSqjI7VAu2BjoJGklEH18PN11o/235bMGvdX3vWJKvASSO yiMA== 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=2StpPjAwpUkcFuyJYohR2Q8qsmYs67xdWnzx1EtEdh4=; b=MsdYGl+V5ueLnj1BDwlqIWahr8p+hYhUbdOkJGO8jHRNerFEA32PYWDJrSueEf5tiK kVWEN1qndyuAakb+Q6A6FpqARYdniPloYCBhcapzU8OAfNQr2rBotkGIZt7W6mZVXBAP B0TajIDGBqCLd6gp097fevQiFEiz6wJTXCVTlEyR+lewtoCsxA7Sz9lClsGDhQUItudW zLS6peIkU6cs+VPgR0D2z5lsaU4MeoejHSPvfv19eZN8l8LamjvVuZ6cB8/JrZVayRW+ guClUIUJfj/XNGK4lDFfoPgqUaa8+K9RRqO3iOkJ0o0nUVuAfK3WCQ7madYGNCr+uisq O12Q== X-Gm-Message-State: ALKqPwfMscPpVMNB9D7jT7JcUMV+p6qlUGrqqn7H6XO5ILgJF8yPYJ5Q eZDL+IXfu/+5y8QzQybVwQLVqLpAmeI= X-Received: by 2002:a17:902:20e5:: with SMTP id v34-v6mr1667692plg.127.1527057517011; Tue, 22 May 2018 23:38:37 -0700 (PDT) Received: from joelaf.mtv.corp.google.com ([2620:0:1000:1600:3122:ea9c:d178:eb]) by smtp.gmail.com with ESMTPSA id m9-v6sm32121893pff.41.2018.05.22.23.38.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 May 2018 23:38:36 -0700 (PDT) From: Joel Fernandes X-Google-Original-From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: "Joel Fernandes (Google)" , Boqun Feng , byungchul.park@lge.com, Ingo Molnar , Josh Triplett , kernel-team@android.com, Lai Jiangshan , Mathieu Desnoyers , Paul McKenney , Peter Zilstra , Steven Rostedt Subject: [PATCH 4/4] rcu: Identify grace period is in progress as we advance up the tree Date: Tue, 22 May 2018 23:38:15 -0700 Message-Id: <20180523063815.198302-5-joel@joelfernandes.org> X-Mailer: git-send-email 2.17.0.441.gb46fe60e1d-goog In-Reply-To: <20180523063815.198302-1-joel@joelfernandes.org> References: <20180523063815.198302-1-joel@joelfernandes.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "Joel Fernandes (Google)" There's no need to keep checking the same starting node for whether a grace period is in progress as we advance up the funnel lock loop. Its sufficient if we just checked it in the start, and then subsequently checked the internal nodes as we advanced up the combining tree. This also makes sense because the grace-period updates propogate from the root to the leaf, so there's a chance we may find a grace period has started as we advance up, lets check for the same. Reported-by: Paul McKenney Signed-off-by: Joel Fernandes (Google) --- kernel/rcu/tree.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 31f4b4b7d824..65e49282429c 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -1570,11 +1570,12 @@ static bool rcu_start_this_gp(struct rcu_node *rnp_start, struct rcu_data *rdp, goto unlock_out; } rnp->gp_seq_needed = gp_seq_req; - if (rcu_seq_state(rcu_seq_current(&rnp_start->gp_seq))) { + if (rcu_seq_state(rcu_seq_current(&rnp->gp_seq))) { /* - * We just marked the leaf, and a grace period - * is in progress, which means that rcu_gp_cleanup() - * will see the marking. Bail to reduce contention. + * We just marked the leaf or internal node, and a + * grace period is in progress, which means that + * rcu_gp_cleanup() will see the marking. Bail to + * reduce contention. */ trace_rcu_this_gp(rnp_start, rdp, gp_seq_req, TPS("Startedleaf")); -- 2.17.0.441.gb46fe60e1d-goog