From patchwork Wed Oct 25 00:43:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Rong Tao X-Patchwork-Id: 157777 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce89:0:b0:403:3b70:6f57 with SMTP id p9csp2290091vqx; Tue, 24 Oct 2023 17:44:19 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHR/wHjEFOQNKOniTdYYcfMrmkT0Cpi7SCiwXhhn5zkU3LdQuta9fBVva6VfEwelXPTd8py X-Received: by 2002:a05:6359:5c20:b0:168:e177:b2bf with SMTP id pu32-20020a0563595c2000b00168e177b2bfmr6856510rwb.5.1698194658934; Tue, 24 Oct 2023 17:44:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698194658; cv=none; d=google.com; s=arc-20160816; b=ql+UdXzjzY10LhxUlvI+daksfoRXjanU1wK7KDEorOY53EpaxTbLjuM8y5A1pOE9zp vc5dSBb+4K1orLV3m+oz31fGQAFp2rUkyzSv4j6KGbYg6VTJjJsJJqnqACZB27juea78 xmImv6lntk9Os2pAFlKVV5Sbca9o82r143nO+R98g5xMisjDzh2mY6PoWFxU2oDV1Sm+ YV1j8bchJYk69xvAEyjfQzFr3vUYET2YPRUZl/vbJYdkT7T3+4tHTfToxg76Yy6DoSUn HrGja1fzVdH30JQ0Dc2RWkGEu2Z7drIkno9DvR/gMRvQCzfWNcZDQbzFVulgQCM6g5SW DTyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:subject:from:to :content-language:user-agent:mime-version:date:message-id :dkim-signature; bh=UO/hFLLCVSGUQcpbxOQBk7OKmQn8mqkkoiQ7OUS4LCM=; fh=U0E2oue9IzKbPXNB16Yw1wWV+8jNv6A/mZY7VBras1A=; b=UHOntHoVmi/tAJzFdbUy5QtQugOh5QSM4220tO9nk8qPK0l8LPxpnznIlXtsk44wMf ytQCSokSBcRrE0cuOa7Rs8fEZJaubSmIbLuxQ0VEQZbErgup71O2xid2M6jvid9kAPCc vp8kGoTfWh6otIwzKv1R7PTuRLZ10PAeSkbGBjpe89l8OMDBbRwYwMWv2xxume5Wwikg A6Z7Of34VqhP7znFQGw65UwbIZGGR4XlZP3KfxHFqSGDx+K4tX9cpNP9xhBAL77uzI0D /DnvM6e0UovQ7F8U3BboCAb+eLi5SYB2zHZFqcEuW+mrcuxc+MGsRjpRkMEP6rqBtoyz Jvlw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@foxmail.com header.s=s201512 header.b=jUiSghDY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id bv67-20020a632e46000000b005aa83686f32si8785299pgb.42.2023.10.24.17.44.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Oct 2023 17:44:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@foxmail.com header.s=s201512 header.b=jUiSghDY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id EE36280C2576; Tue, 24 Oct 2023 17:44:16 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229548AbjJYAoE (ORCPT + 26 others); Tue, 24 Oct 2023 20:44:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51814 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229441AbjJYAoD (ORCPT ); Tue, 24 Oct 2023 20:44:03 -0400 Received: from out203-205-221-173.mail.qq.com (out203-205-221-173.mail.qq.com [203.205.221.173]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7F94E9F for ; Tue, 24 Oct 2023 17:44:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1698194633; bh=UO/hFLLCVSGUQcpbxOQBk7OKmQn8mqkkoiQ7OUS4LCM=; h=Date:To:From:Subject; b=jUiSghDYShUvrcJK3ZI2J3c8rXJBudZT4flPwCA4qBmNI7ltVHQXy1fTUf8qi3OnE A0tCYw/hF36vO/QM3Kioh5ESJTrYQR0S9TDo9CfqsxMRWf28D5ToUb92H2880UO2jT SmqDnpiAdPpTIbx9zpVlxWTCBhZdGcgqw6hJIQZw= Received: from [10.56.52.5] ([39.156.73.12]) by newxmesmtplogicsvrsza7-0.qq.com (NewEsmtp) with SMTP id AF418868; Wed, 25 Oct 2023 08:43:52 +0800 X-QQ-mid: xmsmtpt1698194632tp7q4unq7 Message-ID: X-QQ-XMAILINFO: NkHKfw09D6j8ksfWJEg0tBWe+hLpcLpPEnKLAuWz7OTLg257AlBAqEWPNGD1R0 1CFLH1RaDxd42UPYVn91UTsflPjAh4XOf8ROcHYqcC67HqmrXmke+5skhLxi9bW1p79IBjo1C65L ecoNBMDzQlWgjcX7MP/xw/VtjsCUoHWrJrX9MWnuoclrzxODyELh/N9eGJW9mdrzAKzE0jbSwLOJ fouwYB2TLVbh7syDLtJA76lZy7niZ68O7t/fL4WqDI0vhgb11UC1cO0h4MS3v/JSyBJ2FTLqu65R T0pYLT9dDEOZYPzKcjTc+DjDMSdkC0rQx2UrkUAp6pjQpg2fXDayuFZo7D98kPiZ+2NF3DBVM+Cn urjFOhn2gs0tOfzA2xz8O0L+Ou4p4BLg6LK/gWiF/UkeqB/dfw+IY4k1RVJimUYkrBfrjyg/UXE3 MK7Q6znPHhHpr/9WLNm6tFo5TzIwzGzbVkzJya/fBp5M0A8aaWgOrYRlULuGPgt6eX3Edm30c2Z5 o9ToPk3DjGFo8cWRAZLsgYETmQqGd/rlddpxSH7fjcIbNXQkJlOlHQxWG6agGxDfcIU/rcUgBwNo /yWjqmva/UDarFo5+spRWvXjMiAXW7GUD3iEN6c/+QyR7qVK+SC16FGolyrL8j1ITDoQfCEvCemk SIuoSeXaXFk0VlM907d7R5BYok8FWts3Y3WLFfxQeMhh1vaqMV8URK7P5IQZb82c2jWG0zat8R8k sfckrmZj3I3JIE6q5yCV1pPtLTVki/nixWHe+zn4Xrn6uot4Q8+NEM6O25cB/1dWy1HejNan3Fxg MU3onQXKv8+ls3WlGk7lEoDSTijMbXB3BWEib4ijk592rm9ItIPtEWxzjjMCaE0JpKl0d3SA2zUg HQ/Ie0B6O32Xqj+f67R2KjXNrZarFEm3bYKFVsTbg8d2w5ku60akgNrXogjzFMCAjo/SrYLDqv8S t+StogHQmwk22V3rG7Gx+WM/7hf05GhWnUkSEwOuzqhctzuLnOWreIayfGVNbqhrhvZVbLzULUez heptaR86nBtZ69xB+S X-QQ-XMRINFO: Mp0Kj//9VHAxr69bL5MkOOs= X-OQ-MSGID: Date: Wed, 25 Oct 2023 08:43:51 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: open list , rtoax@foxmail.com, Rong Tao From: Rong Tao Subject: [PATCH] stop_machine: pass curstate to ack_state() X-Spam-Status: No, score=1.0 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FORGED_MUA_MOZILLA,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email 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 (agentk.vger.email [0.0.0.0]); Tue, 24 Oct 2023 17:44:17 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780686163015856564 X-GMAIL-MSGID: 1780686163015856564 The multi_cpu_stop() state machine uses multi_stop_data::state to hold the current state, and this is read and written atomically except in ack_state(), which performs a non-atomic read. As ack_state() only performs this non-atomic read when there is a single writer, this is benign, but it makes reasoning about the state machine a little harder. Remove the non-atomic read and pass the (atomically read) curstate in instead. This makes it clear that we do not expect any racy writes, and avoids a redundant load. Acked-by: Mark Rutland Signed-off-by: Rong Tao ---  kernel/stop_machine.c | 7 ++++---  1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c index cedb17ba158a..268c2e581698 100644 --- a/kernel/stop_machine.c +++ b/kernel/stop_machine.c @@ -188,10 +188,11 @@ static void set_state(struct multi_stop_data *msdata,  }  /* Last one to ack a state moves to the next state. */ -static void ack_state(struct multi_stop_data *msdata) +static void ack_state(struct multi_stop_data *msdata, +              enum multi_stop_state curstate)  {      if (atomic_dec_and_test(&msdata->thread_ack)) -        set_state(msdata, msdata->state + 1); +        set_state(msdata, curstate + 1);  }  notrace void __weak stop_machine_yield(const struct cpumask *cpumask) @@ -242,7 +243,7 @@ static int multi_cpu_stop(void *data)              default:                  break;              } -            ack_state(msdata); +            ack_state(msdata, curstate);          } else if (curstate > MULTI_STOP_PREPARE) {              /*               * At this stage all other CPUs we depend on must spin