Received: by 2002:a05:6358:5282:b0:b5:90e7:25cb with SMTP id g2csp3406010rwa; Tue, 23 Aug 2022 04:21:43 -0700 (PDT) X-Google-Smtp-Source: AA6agR4PvIWl2KfxLO+r/3Y0a4QVAqpbwNNDCwY6+w+5xTTdtj5yqAI4nulVXO9li9b80HoGTyv8 X-Received: by 2002:a17:902:cec1:b0:16d:c4f2:66c5 with SMTP id d1-20020a170902cec100b0016dc4f266c5mr23583729plg.20.1661253703357; Tue, 23 Aug 2022 04:21:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1661253703; cv=none; d=google.com; s=arc-20160816; b=H1OeL+dd3y8qx45v6o77QYmqz/MRgByib5kN9mw43OxinkkrC2vqegAbX3kTHKQQmG OgIgx4wZYmk3ol2ppZP7Vt/puGrba2g4p5byOj39ObJxRKbZ2ucKZfB9aRZWXCxVwdaX M1bh34U3CNWhQwLxuANdnT+ft0ZV7b0XMs4lEugy+pLfb9e5i+/LtFVTYYkb3zPr/dmy YifBe3g/Z+B9pfoVglyA7GRpw9mdA6vHWNlcQFotLgy1CcQgf2pnTdecAb65f04pJPBO +VF1X/D3lFJ91YaUnqhnHnOkiTEHPqL8b54YQpacVj72RPdQNKI1yGIR+fEx5Bgw3xFV +rag== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=FNlYDYQcxFjIsQOYRT1xiKy4eQEtFNdHy6BJe3Czuao=; b=cWH2B3OSDWr5wdggPzTyP5RHwvVkUO9YGot2MP0lsRj4XJUeLHKPcFCpUFAm051x8M MJykYBLMrW34jhYYVvwQhQ/5l6p+40Lh7z9abdGHWVj0jrr4dPL10XgXSwFQWbbOu8RM 4PY1MJ06whLS4plMouxX/iJ6zFfK9eAl5Ufne4BWftn2vf523hGawQAP5V8nkgz/hojs FTWxFnkqSi5+VawcmOnJGMJCSNMXqTmzSB4HMWsTavlI7w2B9YOfJk3n/hO0Z02FzcJ8 F3l09ASNTuiojed1W+oLK1TEZdyDUXhW9qyENOZAS5RUzPuXahAlivR5Iu0BdATncMrk IvDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=OF6h8j5w; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id cp8-20020a056a00348800b0052eb171b730si10783726pfb.250.2022.08.23.04.21.31; Tue, 23 Aug 2022 04:21:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=OF6h8j5w; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1354465AbiHWKZk (ORCPT + 99 others); Tue, 23 Aug 2022 06:25:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47286 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1353603AbiHWKLm (ORCPT ); Tue, 23 Aug 2022 06:11:42 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9947417E39; Tue, 23 Aug 2022 01:57:42 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 4C54BB81C35; Tue, 23 Aug 2022 08:57:41 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 837DEC433C1; Tue, 23 Aug 2022 08:57:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1661245059; bh=cQUKwcbiut4+VNBJPGTQbCoxxw+3gT62RRW+DGnk7Tc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OF6h8j5woJJ1etHYaWD9Tz6R8/IywsHshGVpCv6nayoxwVel83EpMZDubwhGiEh3G nXtJhBTCiBLIVUJAg3ve7d9l4Xl+o3jNycsV49zGwHDHdIjarjOOA9aRrOU4EMUPAz Qo55NExK0fZLNVUosfZgNrSXQ0bTMEr/hClQzKS8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Logan Gunthorpe , Christoph Hellwig , Song Liu , Jens Axboe , Sasha Levin Subject: [PATCH 5.15 201/244] md: Notify sysfs sync_completed in md_reap_sync_thread() Date: Tue, 23 Aug 2022 10:26:00 +0200 Message-Id: <20220823080106.194739462@linuxfoundation.org> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220823080059.091088642@linuxfoundation.org> References: <20220823080059.091088642@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE 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 From: Logan Gunthorpe [ Upstream commit 9973f0fa7d20269fe6fefe6333997fb5914449c1 ] The mdadm test 07layouts randomly produces a kernel hung task deadlock. The deadlock is caused by the suspend_lo/suspend_hi files being set by the mdadm background process during reshape and not being cleared because the process hangs. (Leaving aside the issue of the fragility of freezing kernel tasks by buggy userspace processes...) When the background mdadm process hangs it, is waiting (without a timeout) on a change to the sync_completed file signalling that the reshape has completed. The process is woken up a couple times when the reshape finishes but it is woken up before MD_RECOVERY_RUNNING is cleared so sync_completed_show() reports 0 instead of "none". To fix this, notify the sysfs file in md_reap_sync_thread() after MD_RECOVERY_RUNNING has been cleared. This wakes up mdadm and causes it to continue and write to suspend_lo/suspend_hi to allow IO to continue. Signed-off-by: Logan Gunthorpe Reviewed-by: Christoph Hellwig Signed-off-by: Song Liu Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin --- drivers/md/md.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/md/md.c b/drivers/md/md.c index 4bfaf7d4977d..33946adb0d6f 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -9467,6 +9467,7 @@ void md_reap_sync_thread(struct mddev *mddev) wake_up(&resync_wait); /* flag recovery needed just to double check */ set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); + sysfs_notify_dirent_safe(mddev->sysfs_completed); sysfs_notify_dirent_safe(mddev->sysfs_action); md_new_event(mddev); if (mddev->event_work.func) -- 2.35.1