From patchwork Tue Oct 3 23:29:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frederic Weisbecker X-Patchwork-Id: 148102 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2a8e:b0:403:3b70:6f57 with SMTP id in14csp2413322vqb; Tue, 3 Oct 2023 16:29:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHtqjM2Os7lPpdYIRsf6fTx6mLehOJzIIrK7cXelM9IOucsnN78QIrCvNoSImMaWTE+aHy/ X-Received: by 2002:a17:902:db06:b0:1c7:73aa:636 with SMTP id m6-20020a170902db0600b001c773aa0636mr998604plx.43.1696375772100; Tue, 03 Oct 2023 16:29:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696375772; cv=none; d=google.com; s=arc-20160816; b=u5NVEPfo88lFgziMn+IWnZqvyCkwYvsUDFKp8iBpzfsBcWZW/jNe8b0KpZ13ylkWwD AcLqBI0X0XoMvtPQnePV9h4lIHhMrlm6Go2dFwhJpcty+y0gG5NS/s1Qn8VHxbNIdW0F 4VLj21lRHI5/tqE4qEz22ipkXQRRoJ6x/2k1fYnY4Qey8pEwjf3gxPL5fxFldatTBw79 Y9gtiRPsyXV3Ib9aRSOWT0T6Nce9hOxi3Fexy4yUFbGDgsRFutEyYjL4Hx4r6hTg8ZRY vIbCGXLxmoJmwPfP/JfBSPBhFI5M6cTC8fTjnTbHlkqXMIN26kqdZWer7qh/GXsfcwC0 u5fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=DZWGUkO4n24VfH8ClmxNLaBb5TyVpHF0VreKRIvjYBA=; fh=F5rAnPhwm0E3NuqHck/WDxlMw3n2ra+y1fhewNj930Q=; b=U4twLFdhjj+qeew3wWLEpaxyAR9z3yU5yR7zaQYFXdzZnCEhlmkJ/lLJHcaeEvvjWC IEr8pPY1pSMY5tiVYxTgS70YnBYw2c/1SCuvhfTubFT1Fohh+/3pB3zWufzIhTO2yOqK qtH3die5vxg0pJZyMXtNbvpwAEXXYlnvfVZAVS/Zwx9d6yZup4eGf6cQF4zKa4AgZn+0 QI/Wb2VR1NX20p7lNQ7/7XsMnD9g4dyMPpB1PnfKGJ5W+7kvUaI3mZvIIZaK91lvOyQP hf2XvlFViSz3xfZwCESdjt37351vYYV/JChRo8bT+pH++QxTK/fZKUtBTNijCbOGMQjt OK5g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=rxBFBO9f; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from howler.vger.email (howler.vger.email. [2620:137:e000::3:4]) by mx.google.com with ESMTPS id e4-20020a170902cf4400b001c470c5906bsi2325215plg.221.2023.10.03.16.29.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Oct 2023 16:29:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) client-ip=2620:137:e000::3:4; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=rxBFBO9f; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 5AE44831303B; Tue, 3 Oct 2023 16:29:31 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236394AbjJCX30 (ORCPT + 17 others); Tue, 3 Oct 2023 19:29:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42984 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236651AbjJCX3X (ORCPT ); Tue, 3 Oct 2023 19:29:23 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3E766DC; Tue, 3 Oct 2023 16:29:19 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A0123C433C7; Tue, 3 Oct 2023 23:29:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1696375758; bh=v3XWzp5y3b223EZI0Adeq7leNILWY4Ny2s3VXNJdVDs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rxBFBO9fexrgAIW8L6p/0lDFR+U7WAcxIocLnY5i/UnkELy4bW/aP796oq73qPyDe GgqjDQK5xFLEp4d9OxZ7X1QP5pGMLkxZDlpb4v7PNi+0s+guASOFbwUYqeCBCMaUFC lk7UIp12bc6DjYNl2ccy5N5xrHAPtnGqFQDiXFEjxGN8IEKvA9qPfwRgQzBL7HGvIx AgMOTbk04C7loWaFhVWUwVft01hR9G4WyrkiM3bnFKNyFDSkH+4bdVgsMUedtGVf7o 1PLlBmv41w4svke1Z8RSZd1rj1N0UBikaJTJq2i8hidOcZuLTXbNwmJ2gKPM2Va0Bk 4Ja4UJsw9BAKQ== From: Frederic Weisbecker To: "Paul E . McKenney" Cc: LKML , Frederic Weisbecker , Yong He , Neeraj upadhyay , Joel Fernandes , Boqun Feng , Uladzislau Rezki , RCU Subject: [PATCH 3/5] srcu: Remove superfluous callbacks advancing from srcu_start_gp() Date: Wed, 4 Oct 2023 01:29:01 +0200 Message-ID: <20231003232903.7109-4-frederic@kernel.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231003232903.7109-1-frederic@kernel.org> References: <20231003232903.7109-1-frederic@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Tue, 03 Oct 2023 16:29:31 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778778921233549329 X-GMAIL-MSGID: 1778778921233549329 Callbacks advancing on SRCU must be performed on two specific places: 1) On enqueue time in order to make room for the acceleration of the new callback. 2) On invocation time in order to move the callbacks ready to invoke. Any other callback advancing callsite is needless. Remove the remaining one in srcu_gp_start(). Co-developed-by: Yong He Co-developed-by: Joel Fernandes Co-developed-by: Neeraj upadhyay Signed-off-by: Frederic Weisbecker --- kernel/rcu/srcutree.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c index 560e99ec5333..e9356a103626 100644 --- a/kernel/rcu/srcutree.c +++ b/kernel/rcu/srcutree.c @@ -772,20 +772,10 @@ EXPORT_SYMBOL_GPL(__srcu_read_unlock_nmisafe); */ static void srcu_gp_start(struct srcu_struct *ssp) { - struct srcu_data *sdp; int state; - if (smp_load_acquire(&ssp->srcu_sup->srcu_size_state) < SRCU_SIZE_WAIT_BARRIER) - sdp = per_cpu_ptr(ssp->sda, get_boot_cpu_id()); - else - sdp = this_cpu_ptr(ssp->sda); lockdep_assert_held(&ACCESS_PRIVATE(ssp->srcu_sup, lock)); WARN_ON_ONCE(ULONG_CMP_GE(ssp->srcu_sup->srcu_gp_seq, ssp->srcu_sup->srcu_gp_seq_needed)); - spin_lock_rcu_node(sdp); /* Interrupts already disabled. */ - rcu_segcblist_advance(&sdp->srcu_cblist, - rcu_seq_current(&ssp->srcu_sup->srcu_gp_seq)); - WARN_ON_ONCE(!rcu_segcblist_segempty(&sdp->srcu_cblist, RCU_NEXT_TAIL)); - spin_unlock_rcu_node(sdp); /* Interrupts remain disabled. */ WRITE_ONCE(ssp->srcu_sup->srcu_gp_start, jiffies); WRITE_ONCE(ssp->srcu_sup->srcu_n_exp_nodelay, 0); smp_mb(); /* Order prior store to ->srcu_gp_seq_needed vs. GP start. */