Received: by 2002:a05:7412:31a9:b0:e2:908c:2ebd with SMTP id et41csp3704490rdb; Wed, 13 Sep 2023 23:08:35 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEQB8q8nQylG/G4qjWBy7PB0DvO6D9GlxOv4WG9rbc0lhWr6DDTisJM2NV+9YhCfQBkLmYm X-Received: by 2002:a17:903:11c8:b0:1c0:e630:5031 with SMTP id q8-20020a17090311c800b001c0e6305031mr5161358plh.28.1694671714958; Wed, 13 Sep 2023 23:08:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694671714; cv=none; d=google.com; s=arc-20160816; b=sjsG3sMIvtjW0yMzhK/4y/QuEZf9FywYFYi0pMuK/STMB2TCy9og/ZqAdUi5Yrdh6O brdOTGnDJnJd5csLTN3XI2PCIYUiXEdUw3ectBjCRX6YEo4hlf7oUhW9ciAQWjsPGJmt mu+BFipYY6k2F0orPqnnlQ8oEF8ITrSxwbe28MS5Zs1o1B9c0HBMFoTqqfxB/wo6skM5 b3YvH1G4va/4OzJUdVXwYwyKNqGUrdLs+c0EjpIrJB6mJQHpDSyMn+8AapUS9Jpx8/ak +u19z3pcQkzFiuyfSnlpsVJ3/OTYIt2U90URzaJ9U95O7G+PVtO0b7Py6UIyU1gOLoye tmcg== 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:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=ge8I/OvzOxvGhE8u7WBMcWzTqxX/pdENqpGo0pj6W0w=; fh=Dld/LIMtYnJCYgCD4kB6Mqvs6OxgaDAy74VVaB1VrpA=; b=ptYUy9KVdbXFqRncn9W28VjoECZ/pYdKa2SKsfW0QALWnyu0kalYLv24Z44vHgmi6K CXN3ngnEz96xg20gKJA0R3mHRn/OoKkvaZH9zd4IDEJncneFiM/l4zxhsceSaJC6RsjR jMBXJmE2b8O32kgsOfW1YKfM5UPUmc3E/TiToq+W2fEigIowDtP25XoVUmwpo27g9f3y QKvwM5ESrDRt/tTesjDg1OUGUktgIgBp1i+5FWf0IytAtSki9UixK6UNqXdUA+U65wij Atxr7DA0bCjQ+9v4n7EITFAKoe4EQpSz5EC0my4iVXgihl9jryFGWqcpmYrQq9DDU3cX YWLg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from morse.vger.email (morse.vger.email. [2620:137:e000::3:1]) by mx.google.com with ESMTPS id kg7-20020a170903060700b001bb8a57d518si913912plb.379.2023.09.13.23.08.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Sep 2023 23:08:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) client-ip=2620:137:e000::3:1; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id D84C0826EC54; Wed, 13 Sep 2023 23:04:54 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235189AbjINGEv (ORCPT + 99 others); Thu, 14 Sep 2023 02:04:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33990 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235278AbjINGEq (ORCPT ); Thu, 14 Sep 2023 02:04:46 -0400 Received: from mx3.molgen.mpg.de (mx3.molgen.mpg.de [141.14.17.11]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8083C10E; Wed, 13 Sep 2023 23:04:41 -0700 (PDT) Received: from [192.168.1.190] (ip5b41a963.dynamic.kabel-deutschland.de [91.65.169.99]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: buczek) by mx.molgen.mpg.de (Postfix) with ESMTPSA id 1BD9761E5FE01; Thu, 14 Sep 2023 08:03:54 +0200 (CEST) Message-ID: Date: Thu, 14 Sep 2023 08:03:53 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: md_raid: mdX_raid6 looping after sync_action "check" to "idle" transition Content-Language: en-US To: Dragan Stancevic , Yu Kuai , song@kernel.org Cc: guoqing.jiang@linux.dev, it+raid@molgen.mpg.de, linux-kernel@vger.kernel.org, linux-raid@vger.kernel.org, msmith626@gmail.com, "yangerkun@huawei.com" References: <20230822211627.1389410-1-dragan@stancevic.com> <2061b123-6332-1456-e7c3-b713752527fb@stancevic.com> <07d5c7c2-c444-8747-ed6d-ca24231decd8@huaweicloud.com> <0d79d1f9-00e8-93be-3c7c-244030521cd7@huaweicloud.com> <07ef7b78-66d4-d3de-4e25-8a889b902e14@stancevic.com> <63c63d93-30fc-0175-0033-846b93fe9eff@molgen.mpg.de> From: Donald Buczek In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 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 (morse.vger.email [0.0.0.0]); Wed, 13 Sep 2023 23:04:55 -0700 (PDT) X-Spam-Status: No, score=-2.2 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,NICE_REPLY_A,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 morse.vger.email On 9/13/23 16:16, Dragan Stancevic wrote: > Hi Donald- > > On 9/13/23 04:08, Donald Buczek wrote: >> On 9/5/23 3:54 PM, Dragan Stancevic wrote: >>> On 9/4/23 22:50, Yu Kuai wrote: >>>> Hi, >>>> >>>> 在 2023/08/30 9:36, Yu Kuai 写道: >>>>> Hi, >>>>> >>>>> 在 2023/08/29 4:32, Dragan Stancevic 写道: >>>>> >>>>>> Just a followup on 6.1 testing. I tried reproducing this problem for 5 days with 6.1.42 kernel without your patches and I was not able to reproduce it. >>>> >>>> oops, I forgot that you need to backport this patch first to reporduce >>>> this problem: >>>> >>>> https://lore.kernel.org/all/20230529132037.2124527-2-yukuai1@huaweicloud.com/ >>>> >>>> The patch fix the deadlock as well, but it introduce some regressions. >> >> We've just got an unplanned lock up on "check" to "idle" transition with 6.1.52 after a few hours on a backup server. For the last 2 1/2 years we used the patch I originally proposed with multiple kernel versions [1]. But this no longer seems to be valid or maybe its even destructive in combination with the other changes. >> >> But I totally lost track of the further development. As I understood, there are patches queue up in mainline, which might go into 6.1, too, but have not landed there which should fix the problem? >> >> Can anyone give me exact references to the patches I'd need to apply to 6.1.52, so that I could probably fix my problem and also test the patches for you those on production systems with a load which tends to run into that problem easily? > > Here is a list of changes for 6.1: > > e5e9b9cb71a0 md: factor out a helper to wake up md_thread directly > f71209b1f21c md: enhance checking in md_check_recovery() > 753260ed0b46 md: wake up 'resync_wait' at last in md_reap_sync_thread() > 130443d60b1b md: refactor idle/frozen_sync_thread() to fix deadlock > 6f56f0c4f124 md: add a mutex to synchronize idle and frozen in action_store() > 64e5e09afc14 md: refactor action_store() for 'idle' and 'frozen' > a865b96c513b Revert "md: unlock mddev before reap sync_thread in action_store" Thanks! I've put these patches on v6.1.52. I've started a script which transitions the three md-devices of a very active backup server through idle->check->idle every 6 minutes a few ours ago. It went through ~400 iterations till now. No lock-ups so far. LGTM ! Donald buczek@done:~$ dmesg|grep "data-check of RAID array"|wc 393 2820 18864 buczek@done:~$ cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] [multipath] md2 : active raid6 sdc[0] sdo[15] sdn[14] sdm[13] sdl[12] sdk[11] sdj[10] sdi[9] sdh[8] sdg[7] sdf[6] sde[5] sdd[4] sdr[3] sdq[2] sdp[1] 109394518016 blocks super 1.2 level 6, 512k chunk, algorithm 2 [16/16] [UUUUUUUUUUUUUUUU] [=========>...........] check = 47.1% (3681799128/7813894144) finish=671.8min speed=102496K/sec bitmap: 0/59 pages [0KB], 65536KB chunk md1 : active raid6 sdaa[0] sdz[15] sdy[14] sdx[13] sdw[12] sdv[11] sdu[10] sdt[16] sds[8] sdah[7] sdag[17] sdaf[5] sdae[4] sdad[3] sdac[2] sdab[1] 109394518016 blocks super 1.2 level 6, 512k chunk, algorithm 2 [16/16] [UUUUUUUUUUUUUUUU] [=======>.............] check = 38.5% (3009484896/7813894144) finish=811.0min speed=98720K/sec bitmap: 0/59 pages [0KB], 65536KB chunk md0 : active raid6 sdai[0] sdax[15] sdaw[16] sdav[13] sdau[12] sdat[11] sdas[10] sdar[9] sdaq[8] sdap[7] sdao[6] sdan[17] sdam[4] sdal[3] sdak[2] sdaj[1] 109394518016 blocks super 1.2 level 6, 512k chunk, algorithm 2 [16/16] [UUUUUUUUUUUUUUUU] [========>............] check = 42.3% (3311789940/7813894144) finish=911.9min speed=82272K/sec bitmap: 6/59 pages [24KB], 65536KB chunk unused devices: > > You can get them from the following tree: > https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git > > >> >> Thanks >> >>    Donald >> >> [1]: https://lore.kernel.org/linux-raid/bc342de0-98d2-1733-39cd-cc1999777ff3@molgen.mpg.de/ >> >>> Ha, jinx :) I was about to email you that I isolated that change with the testing over the weekend that made it more difficult to reproduce in 6.1 and that the original change must be reverted :) >>> >>> >>> >>>> >>>> Thanks, >>>> Kuai >>>> >>>>>> >>>>>> It seems that 6.1 has some other code that prevents this from happening. >>>>>> >>>>> >>>>> I see that there are lots of patches for raid456 between 5.10 and 6.1, >>>>> however, I remember that I used to reporduce the deadlock after 6.1, and >>>>> it's true it's not easy to reporduce, see below: >>>>> >>>>> https://lore.kernel.org/linux-raid/e9067438-d713-f5f3-0d3d-9e6b0e9efa0e@huaweicloud.com/ >>>>> >>>>> My guess is that 6.1 is harder to reporduce than 5.10 due to some >>>>> changes inside raid456. >>>>> >>>>> By the way, raid10 had a similiar deadlock, and can be fixed the same >>>>> way, so it make sense to backport these patches. >>>>> >>>>> https://lore.kernel.org/r/20230529132037.2124527-5-yukuai1@huaweicloud.com >>>>> >>>>> Thanks, >>>>> Kuai >>>>> >>>>> >>>>>> On 5.10 I can reproduce it within minutes to an hour. >>>>>> >>>>> >>>>> . >>>>> >>>> >>> >> >> > -- Donald Buczek buczek@molgen.mpg.de Tel: +49 30 8413 1433