Received: by 2002:a05:7412:518d:b0:e2:908c:2ebd with SMTP id fn13csp381185rdb; Thu, 5 Oct 2023 08:33:04 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFuI3NktPmDWFr3y+21TkqdfnE93Fi0AJlVwJjJyzSntUaVxDvkDdEJP81Gxjo6N9B2jOI5 X-Received: by 2002:a05:6358:71c:b0:14c:e2d3:fb2d with SMTP id e28-20020a056358071c00b0014ce2d3fb2dmr4341932rwj.5.1696519983734; Thu, 05 Oct 2023 08:33:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696519983; cv=none; d=google.com; s=arc-20160816; b=SfXTetDctvrgxlLCJgyLBcq7iuEF2G7sejDf05Yw2K+6by4DBCs3OKMTcyeM5VLv/0 GxlQSjZV9gCI64wmjLFFOmsbzhDpknEu64Kj2X1JMGHvU/P7m4Rw9ADUlevP1HhCF4aF jWbKNPTZUETcVUFsN9Xrfh4IlxbSLywK5yFV38x563bAUlc1ljOHDwsYbZNAF/m2B7Po fMvGIAKjebWZYFi4x/yd57xqz8zhUDyau7lxPRJguXDOraG2uFvUgot9cVhiK+3Tcbe0 Ylw2XAhzqJTBf1gZASuSjVZH5FJCmOm3mOwB0rDgQS4sfzcn4ZNDr8u/ierCekYxDaUt h5sQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=iLOxf8YPA+4a+g6N4UO15+DL1I1hZxozMgBSbdACBW0=; fh=U7zDjaHW345X4pgivZobyEsCwDCTRrq4LabvR4T8HA0=; b=R+utHTod4wkwmRLtkA+eZN63iNFqDFyU4PxvPdZJ+/xb5DubyCdY7XJw1j7rZgER5S p5642USlK6tl3Dnw/v3NaYQHR3IGdSvKTAtDxV94O9jQNLMu6KeZdgZaPEVcRPKCeP5B YUprKIWpOrhr/AUoQFUC3QO1c9l2/4LkMRHmL0bk2LQevaleS6nAQjHIDCelfFmAzRP4 E4Az/a7wpfZnUg/R7OXlZrq2xGb6g/rCC39cGz4PTW3wl+MNlA5t7656MqEBL1eD6gGQ cf9FSb3tp+BkNf8S1BvWeCDObBBqUQGahJ7kqoVrwNmj/hdYsOku/pR1VjJzG+cHcxNa x1RQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=XPbmGea8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from agentk.vger.email (agentk.vger.email. [2620:137:e000::3:2]) by mx.google.com with ESMTPS id w8-20020a63f508000000b00563d791d978si1660604pgh.750.2023.10.05.08.33.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Oct 2023 08:33:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) client-ip=2620:137:e000::3:2; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=XPbmGea8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 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 agentk.vger.email (Postfix) with ESMTP id 3BEED823625E; Thu, 5 Oct 2023 08:33:01 -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 S232518AbjJEPcw (ORCPT + 99 others); Thu, 5 Oct 2023 11:32:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47450 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233322AbjJEPcV (ORCPT ); Thu, 5 Oct 2023 11:32:21 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 89B3C16AA2; Thu, 5 Oct 2023 07:37:31 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0C044C433CA; Thu, 5 Oct 2023 04:00:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1696478422; bh=FihUa0tBwKjEXiCm8gEOsR7cV+rqgCLeNbM/8aB0Or4=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=XPbmGea8ufH4Es7bR544Ur65RJ/+g4TjOjDlPCSsRE5Gd6QINI9E9iAeqeIloHvPG ZkNFNeowcdhxEd/YYjkMNDHApbTEB3Cnb1XMsicnX4ictwK7SN8Y30DyWRY+rBPBD7 1l2xP6HYXD510T+82XzPnuIM6rZF854YM3Lrrv3h4yCxrI9p+wfAh6Wtpvxv6LsClB 1IiOTt0G9bzSmamjoc5lcV1UvyD/8a4ysps+UTbEqoSAoTgjVN3nHrzmAtPSRV+FQ3 apFmIWmZL1lD43tmsRt8rkQBxZR9ewEKlLcwRWCTAvfV0oNA/MAf5RC/wFzHHLFgkS yBu0jZrptePdQ== Received: by mail-lj1-f174.google.com with SMTP id 38308e7fff4ca-2bff936e10fso19907581fa.1; Wed, 04 Oct 2023 21:00:21 -0700 (PDT) X-Gm-Message-State: AOJu0YyflS3k+epelRvg8Ba00Pprgy3WqcLF8M/ECJ9CMlhr3hvqUCvm Vt045erQ5VhxjkBxxVhSm2b0fJbOg6RNys3wMwk= X-Received: by 2002:a2e:b4b3:0:b0:2c1:86da:3f61 with SMTP id q19-20020a2eb4b3000000b002c186da3f61mr116977ljm.9.1696478420086; Wed, 04 Oct 2023 21:00:20 -0700 (PDT) MIME-Version: 1.0 References: <20230928061543.1845742-1-yukuai1@huaweicloud.com> <20230928061543.1845742-4-yukuai1@huaweicloud.com> <0ae441ba-68db-b823-b48c-76e953d22067@huaweicloud.com> In-Reply-To: <0ae441ba-68db-b823-b48c-76e953d22067@huaweicloud.com> From: Song Liu Date: Wed, 4 Oct 2023 21:00:07 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH -next v3 03/25] md: add new helpers to suspend/resume array To: Yu Kuai Cc: xni@redhat.com, agk@redhat.com, snitzer@kernel.org, dm-devel@redhat.com, linux-kernel@vger.kernel.org, linux-raid@vger.kernel.org, yi.zhang@huawei.com, yangerkun@huawei.com, "yukuai (C)" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable 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]); Thu, 05 Oct 2023 08:33:01 -0700 (PDT) On Wed, Oct 4, 2023 at 7:59=E2=80=AFPM Yu Kuai wr= ote: > > Hi, > > =E5=9C=A8 2023/09/29 2:45, Song Liu =E5=86=99=E9=81=93: > > On Wed, Sep 27, 2023 at 11:22=E2=80=AFPM Yu Kuai wrote: > >> > >> From: Yu Kuai > >> > >> Advantages for new apis: > >> - reconfig_mutex is not required; > >> - the weird logical that suspend array hold 'reconfig_mutex' for > >> mddev_check_recovery() to update superblock is not needed; > >> - the specail handling, 'pers->prepare_suspend', for raid456 is not > >> needed; > >> - It's safe to be called at any time once mddev is allocated, and it= 's > >> designed to be used from slow path where array configuration is ch= anged; > >> - the new helpers is designed to be called before mddev_lock(), henc= e > >> it support to be interrupted by user as well. > >> > >> Signed-off-by: Yu Kuai > >> --- > >> drivers/md/md.c | 102 ++++++++++++++++++++++++++++++++++++++++++++++= +- > >> drivers/md/md.h | 3 ++ > >> 2 files changed, 103 insertions(+), 2 deletions(-) > >> > >> diff --git a/drivers/md/md.c b/drivers/md/md.c > >> index e460b380143d..a075d03d03d3 100644 > >> --- a/drivers/md/md.c > >> +++ b/drivers/md/md.c > >> @@ -443,12 +443,22 @@ void mddev_suspend(struct mddev *mddev) > >> lockdep_is_held(&mddev->reconfig_mutex)); > >> > >> WARN_ON_ONCE(thread && current =3D=3D thread->tsk); > >> - if (mddev->suspended++) > >> + > >> + /* can't concurrent with __mddev_suspend() and __mddev_resume(= ) */ > >> + mutex_lock(&mddev->suspend_mutex); > >> + if (mddev->suspended++) { > >> + mutex_unlock(&mddev->suspend_mutex); > >> return; > > > > Can we make mddev->suspended atomic_t, and use atomic_inc_return() > > here? > > 'suspend_mutex' is needed, because concurrent caller of > mddev_suspend() shound be ordered, they need to wait for the first > mddev_suspend() to be done. > > Updating suspended is protected by 'suspend_mutex' in the new api, so I > think it's not necessary to use atomic, WRITE/READ_ONCE() should be > enough. Thanks for the explanation. Song