Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp1854544rdb; Thu, 7 Dec 2023 10:25:03 -0800 (PST) X-Google-Smtp-Source: AGHT+IFcY+9+MpRkMlVsoogxrHVRZ9DBe0uRQQKR5Uzrkcos6D0cxrJ9I0/sIvvFw2U3P+1G00ND X-Received: by 2002:a05:6a00:1787:b0:6ce:8360:fa9c with SMTP id s7-20020a056a00178700b006ce8360fa9cmr3290746pfg.6.1701973503206; Thu, 07 Dec 2023 10:25:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701973503; cv=none; d=google.com; s=arc-20160816; b=l398/RO81r4/ToGSdaM1V2EI7A/JkyQQvYb6vCVg3e4QEs6BrESxGICPila5JekOo+ ioEyf3ze5zIEDq9pY8zKSta9U1H6h/Mxd9woEeuZkW6r5bnhLa0+Y2tvvrMqQnGBiRD5 PDnYOa+xXDMnJgg5VXeNYDsdbDVJmipvuBggWJ8qJf54WaCkdDeagCb5DbX5yAf90WLu 0e7EYhu180XdSoEWoQYnVgj2YsesQ+8KWXojP8GIEk1sFyAIdKC3oD5GRL5zcAROHuoQ I7bZodXER/JM8RZ17kxOJM1jmHnE+QudAHfi1vr4KRjc2aNM2LopAnYLywk7ikgJl9Sy tTqA== 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=zRne2pm3tHn7PPfpK3hBI2SOZfYw5LW8xLXH3U3BbFk=; fh=rPHNe4DqNEGRnxr7kBATzdU+9R8Bn1IJj4GlNzj+H5E=; b=Sh0XanGFT94WoR/ibazh4Z7Jv/gWz9a6mcmKJ0yEZYngWgwuGHbykHBlM56obXcvvY ueR323Y7i1cPPbHHFT0+fVQ0vqHcf/5aE25BUe9J2dyuFANWTCropABBzpzqRt7vGpkw NLLX6feqFSMoFvdO3vwqVSlotH2CuHW3AF1eUawvFvPJvm0oPrb13syhjuO9TC/Jwxbt iNswBGfiaiNVo1e9gHDJJlyuq74ECzfVy7BbobJ3Rq1o/4ccxnZwjf7NlSoX77oFvViV jpEFrOX9Oeg+10lOA1RCe7Mskzf2XVYwxP4SVgHSzOnIQ9AF30wXetUIfBetR483wm27 7Hrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=XZtEUJFT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 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 lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id e3-20020a656883000000b005c62a23ddffsi87367pgt.778.2023.12.07.10.25.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Dec 2023 10:25:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=XZtEUJFT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 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 lipwig.vger.email (Postfix) with ESMTP id CAE2C80E9E13; Thu, 7 Dec 2023 10:25:00 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1443720AbjLGSYr (ORCPT + 99 others); Thu, 7 Dec 2023 13:24:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51180 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1443698AbjLGSYq (ORCPT ); Thu, 7 Dec 2023 13:24:46 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4520710E7 for ; Thu, 7 Dec 2023 10:24:52 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DCAD5C433CA; Thu, 7 Dec 2023 18:24:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701973491; bh=TFDAjpdgkNrVFuP09kuXa8cBSyHPUJTONtfHhK5KAF8=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=XZtEUJFTAvCj6DyX8vxVXxTjD5YjJ/WJrcxDNUlcnRBSEJ1JMExugTaMAGNMLVc47 Z3GncuUjyCxD4TA7GawunDxij0Xdj1rEj4xQHu8b8AiCutMq9lSC1vKVlXnKrLoOhO S1Bt/wSB9E2CxdhsserdsWWpU6cr8MxZvlzwRoWgU7X/lbidD5RF599dM2j/K2m7FU HC6I7W12faHc7VDui71Jh3aYlEk3eSp2V5Uqw2PDT34LrRDC68hzTpJx1dXo0lu1Jc Fa/4if7JKV4o4QBYscpYFe2JGOo9eNLL9JTk91SSTIYTTZIDejApdAnsbHNr3WcKzG OjbCPuYftSBrg== Received: by mail-lf1-f41.google.com with SMTP id 2adb3069b0e04-50bef9b7a67so1245256e87.1; Thu, 07 Dec 2023 10:24:51 -0800 (PST) X-Gm-Message-State: AOJu0YwSeAnGK8UccDsEb6Yjse1ddZGlFBV2VhMT+9VjzsJBTN9r6vei 3O2q55DoARvhQqysxXptrpTz/aNZFRKp7pLeo8E= X-Received: by 2002:ac2:5634:0:b0:50b:f302:5e40 with SMTP id b20-20020ac25634000000b0050bf3025e40mr1568105lff.34.1701973490061; Thu, 07 Dec 2023 10:24:50 -0800 (PST) MIME-Version: 1.0 References: <20231207020724.2797445-1-yukuai1@huaweicloud.com> In-Reply-To: <20231207020724.2797445-1-yukuai1@huaweicloud.com> From: Song Liu Date: Thu, 7 Dec 2023 10:24:38 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2] md: split MD_RECOVERY_NEEDED out of mddev_resume To: Yu Kuai Cc: yukuai3@huawei.com, pmenzel@molgen.mpg.de, janpieter.sollie@edpnet.be, linux-raid@vger.kernel.org, linux-kernel@vger.kernel.org, yi.zhang@huawei.com, yangerkun@huawei.com 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,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.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 (lipwig.vger.email [0.0.0.0]); Thu, 07 Dec 2023 10:25:00 -0800 (PST) On Wed, Dec 6, 2023 at 6:08=E2=80=AFPM Yu Kuai wr= ote: > > From: Yu Kuai > > New mddev_resume() calls are added to synchronize IO with array > reconfiguration, however, this introduces a performance regression while > adding it in md_start_sync(): > > 1) someone sets MD_RECOVERY_NEEDED first; > 2) daemon thread grabs reconfig_mutex, then clears MD_RECOVERY_NEEDED and > queues a new sync work; > 3) daemon thread releases reconfig_mutex; > 4) in md_start_sync > a) check that there are spares that can be added/removed, then suspend > the array; > b) remove_and_add_spares may not be called, or called without really > add/remove spares; > c) resume the array, then set MD_RECOVERY_NEEDED again! > > Loop between 2 - 4, then mddev_suspend() will be called quite often, for > consequence, normal IO will be quite slow. > > Fix this problem by don't set MD_RECOVERY_NEEDED again in md_start_sync()= , > hence the loop will be broken. > > Fixes: bc08041b32ab ("md: suspend array in md_start_sync() if array need = reconfiguration") > Suggested-by: Song Liu > Reported-by: Janpieter Sollie > Closes: https://bugzilla.kernel.org/show_bug.cgi?id=3D218200 > Signed-off-by: Yu Kuai Thanks for the fix! I added a comment and applied it to md-fixes. Song