Received: by 2002:a05:7412:251c:b0:e2:908c:2ebd with SMTP id w28csp2243748rda; Tue, 24 Oct 2023 17:54:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFnUgC4wVBbr521AvofLlAogRK0Vo++A1+7ZoUC5G7D2INN4zhIH+TzGZ45MNi6MtgTpn9R X-Received: by 2002:a05:6a21:998d:b0:17e:2afd:407b with SMTP id ve13-20020a056a21998d00b0017e2afd407bmr5360863pzb.9.1698195252635; Tue, 24 Oct 2023 17:54:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698195252; cv=none; d=google.com; s=arc-20160816; b=cNQ+dr8hzs8WhpJ+qln0AGeRfoedq7vzy229Bd9ttbSq4oBEn6L2dWH2JS535FhjQW yf1heAyZKASdIMznRjpu+Nwv2F7+m6mVsLvrw4oIOrPUk7e8N9QskPnomcQvOZqJF+XI zI3WEh8XFxBmCbqx9qItwOS7FZiHSa/a8vb5LA29XO6NMYfHMU9pM4FoxreoxznPcOZS uLapwB/CgHt0w6MOf39ibwVZapt/Gp98GClWyr16ErM++cnstjT53sv1+W7O56HG2VZO e7q7FMWVPzot1pWiCN62U6UJsAqWW1wsVAMisdPb7UmAegpugV+w+mbtatECFQnZbyMa 9Idg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:references :to:from:content-language:subject:user-agent:mime-version:date :message-id:dkim-signature; bh=7UGFKvnw2KURZTmA0bm82zgAp8R9Vc0bjiJxLN1Pros=; fh=hXmX+8+2SWGNux9pHxtvpS25cy4uvakFDBwWAsCF8XM=; b=VA2/2VWnpwF7Zc1BsdO5R3a+RT9fh0b08FSXQdENL6B9I61uRUlaVOWmYcNTHP+5ee 9fNjHo/Whm2oP8zhM2RNHNJLSK7oTwJZneQmUExklYMHERDDb4VTtWDuEfSxfMxf7/FS PRxJT8txY1OVhc/2iM6PGKfdgG43DZGhaceAKb98+sardhE9kCSI4CVeFqwlfJactl+8 ryajt5EDAWW727f6rRREb5fjNlngeaHzOYdvmIdra/txhkR5XLdxcB5pgxW2Blx2zFqX D/GaL9rjsipqAmp2OI6KN5uUvSAmThcuNgdBFRcVDtC5F7L8SL0Y8EaecBpIDfkjjs6S AOfg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@foxmail.com header.s=s201512 header.b=BtYdrWqf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id bu18-20020a632952000000b00585a5433e55si9501915pgb.143.2023.10.24.17.54.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Oct 2023 17:54:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@foxmail.com header.s=s201512 header.b=BtYdrWqf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 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 snail.vger.email (Postfix) with ESMTP id D80858025D05; Tue, 24 Oct 2023 17:54:10 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231862AbjJYAyD (ORCPT + 99 others); Tue, 24 Oct 2023 20:54:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39856 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231341AbjJYAxy (ORCPT ); Tue, 24 Oct 2023 20:53:54 -0400 Received: from out203-205-251-66.mail.qq.com (out203-205-251-66.mail.qq.com [203.205.251.66]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 08AA310E3 for ; Tue, 24 Oct 2023 17:53:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1698195223; bh=7UGFKvnw2KURZTmA0bm82zgAp8R9Vc0bjiJxLN1Pros=; h=Date:Subject:From:To:References:In-Reply-To; b=BtYdrWqflZmEDeNbMb3JoTrZNoeNBSAhrJeCXl+yotLmjY10rMyXhtjeGlCUvZYaF /LY5uCUhNpk1F43uMLOgyrccZdEuDUgjWMqy0fuOY1lbeqVRJYgYEXGN0bRSQEKY+p CUbE2GMdoWgoaPDiEZr/rU67PQy/fuNPVfT6Tts0= Received: from [10.56.52.5] ([39.156.73.12]) by newxmesmtplogicsvrsza10-0.qq.com (NewEsmtp) with SMTP id D699C850; Wed, 25 Oct 2023 08:53:41 +0800 X-QQ-mid: xmsmtpt1698195221tqd5ypqrg Message-ID: X-QQ-XMAILINFO: M3Q/Kj4zjy609r3o/1apa4PGY2BWj3wwQLGAA7W9rPL1gx8/t5AOrNnW+x0Lkh 4fQHY27KSnoGvfyxL4sFs+0Dkzh5sYRIU2Iv2vvO6M4Sf68ozkxAYZxJZ64HK1XTSjL6SSkeq0zs /481DyG30bWqx8UQ96jQViqfFIG3iPW2S3vdqexgYzkReMBo+doiUY3lTykbe/WtXT+8F4NCbabE xoODG/f2kP4wo8U+wXtdadCRpk63z9E4ouHkX6WWcZT4+/antN4qmMxCvqxLrU8CgaPW1hx1GDfG 7EZfWOXeGjpxnSzkqvispJzVb7g7M0zDsavph2p8dfqnWbRIvuB66ldTvfSTRGZuvWh4VYG5KAs6 qGQrqt5Sc3wPwJmjTR9qQTLS+2KZHlQQwwE7SK8Jp+vKbCtRPKZZE1vxfRu+5J/FHMYUp0fzMUfQ xjTNFls7MTGzbQGgHzd4+1Z5V1kkmiCxiTV76DoCLxrp8jaIivb3RtSDmji8TrX3awbH5cwuqYvX B0Vi5K5mA3ByDBlrQujWGyo2ftdimIDPT0Vj2ixiSKQxCISO4fpEiGO383H2yNvnv1IOFXqv8ZU/ /b0Pap0jdFBTU/nI4Qees4ZbJgzHq7OXHmOnPSj7Q5uhAMCRgQ3SdlLDLAx/dDdDK+4IAZTYs0Av SqetXmpPPMCDr2oaX8RO3dwnEr6sTdF5V93M1FErnCHJzJOoQDVUsWKV99jZTETEFPTfpQALIqbK slJvBVuPUcplyC+9vDjm86hun7c5VWAhjK+lu2V5NQ/wg6DBWzGJ0K68fkmdsD/sDgTJgNTWYI3r OBsijGAuN54z6G/2CIsbqvKTXIvaT5WTNKkaMlbx3Wjn96/BmN7P6abLJd8QWHTJryURL8HhKa4H q7YlrRYH9UacM/27GYN+3K9YnvsAwp2Ykq3SOW0PihtAr66yAwn2ZppVZZ7O8b5GU1F5YDlkF1X1 BXZWmi1IGcSkdKRsp1GcOeOcKJ88M7vj3h1CMLtxnmzhsQwFcEmn0W7sC0Xl6OkgX22aE7HCpj7A IqwGSkgzrMHpeU5f7eQYxr4iSECUIzEKRCgTh3bOPEDhxa44PPR55PINUTG9s= X-QQ-XMRINFO: Nq+8W0+stu50PRdwbJxPCL0= X-OQ-MSGID: Date: Wed, 25 Oct 2023 08:53:41 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] stop_machine: pass curstate to ack_state() Content-Language: en-US From: Rong Tao To: open list , Rong Tao , rtoax@foxmail.com References: In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=3.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_MUA_MOZILLA, FREEMAIL_FROM,HELO_DYNAMIC_IPADDR,RCVD_IN_DNSWL_BLOCKED,RDNS_DYNAMIC, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: *** 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 (snail.vger.email [0.0.0.0]); Tue, 24 Oct 2023 17:54:11 -0700 (PDT) On 10/25/23 8:50 AM, Rong Tao wrote: > > On 10/25/23 8:43 AM, Rong Tao wrote: >> 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. > > I'd prefer if we make this comment: > > stop_machine: pass curstate to ack_state() OK, thanks a lot, i'll try that. > >> >> 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