Received: by 2002:a05:6358:c692:b0:131:369:b2a3 with SMTP id fe18csp2010323rwb; Thu, 27 Jul 2023 00:07:29 -0700 (PDT) X-Google-Smtp-Source: APBJJlHB6z5teBXDmVlF6p0yUgBjTe6O44ruSJ8nzsvUbu7PWD6HoVl1UC9eEJNpoWEm6trxjvjC X-Received: by 2002:aa7:c68f:0:b0:522:2019:2020 with SMTP id n15-20020aa7c68f000000b0052220192020mr1007798edq.17.1690441649447; Thu, 27 Jul 2023 00:07:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690441649; cv=none; d=google.com; s=arc-20160816; b=IWLAvAyZf34Donq5E86MZEvDPG8l7aF+MpLI3cO9PItzGohr44D4FliHSQHEvsVNEO 7x4TxOpDGeD57ouRTFqbmLgEVf1Tzn9pgKgFAhf1qRY8oa4FPclzVhdAi+pnKMGMc2HS aztDLOpNn/BXERULWRJlIz3tAREP7q24CTywMbafyCMguWhoJBPyUOQNxpQjsDvxiaVY Kq2rhJMq/CDaXPhpo2N8uHieL7ysiOkFnNI/pz4q9PGUHdNmNspYbhkc5KG3GmBCXyG3 1jPRI5S7NM1C1ehPECtVzuLffpIHl64E/BXa2aJNfB8S38679tGi0p/q7jn/o+/UvCD4 ELpg== 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:dkim-signature; bh=HOjfkUq3p22xP8kOD+j8BQJBJjD59Omrm1gEuBPwYmU=; fh=pBKTEcxwxr+Bp1asp+lUh1p7+kmhLprQele3F85qLFw=; b=CsGAwPxtBCQ+MyXx8Oicm79TNj3qzdXOUrQPkNJUJ9sboXQlPgNrUANr9lAH826JCO Bs8uQzqZtqb6poP30mldd4PZvQjmqbrFoSSXS54BKKv1oRLTB/L/mbWByi/aC7S/+Gvs CBNVc3/0mM/GGKvnuU6cX8I/mZg75Hhu0mDm4cWkY2sZ85JQN3mQn0DgKxQQSbxp08WY EvqswIOMJhmttGAzoLxd0prTpt43AArCtG8XqDjLLlOzkR+XGFMblhoW0Tf16PS1LWtp XjGxYrs8wsDlnRbERmQqGssmiACaEsF56mMqoFTxQtpH0atMj/koL/aJqi5EqcLTouX8 9rkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@infradead.org header.s=bombadil.20210309 header.b=fcUXEHtd; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l5-20020a056402124500b0052236e8bc8fsi522360edw.216.2023.07.27.00.07.02; Thu, 27 Jul 2023 00:07:29 -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=@infradead.org header.s=bombadil.20210309 header.b=fcUXEHtd; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232593AbjG0GIn (ORCPT + 99 others); Thu, 27 Jul 2023 02:08:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50660 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232502AbjG0GIm (ORCPT ); Thu, 27 Jul 2023 02:08:42 -0400 Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4FF3F10F9; Wed, 26 Jul 2023 23:08:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date: Message-ID:Sender:Reply-To:Content-ID:Content-Description; bh=HOjfkUq3p22xP8kOD+j8BQJBJjD59Omrm1gEuBPwYmU=; b=fcUXEHtdA78JEdJygveP8HpZ86 DPR3f1yho5ZGvB12gAv398M2mPsJnNVUBiSUUuaQNWgxGXMRPM68iLVvYS2qxKlHQLn24NktVe9Ah gYCTQu+Lx44qclc3WdsVPgF1tf9SbNnyUMMIOxciSf8J0tkdmMOQ49W8/lmixj0K869cWKh4G8/AP n1hQveKidiM43PkRIciVA4QJ1a/yepbUWv1LpUDKYdDo6r2xj95gX7qmrQcmmTLUU6SdgKZXxhD/C +5e8YdXr5dzsyNN4dcQE7dZPdIr699KoYaGb0Z3cW+hH/YCQTH9MfScSw3nN6l8aiMKxmOa/miSP/ JIXPgGAw==; Received: from [2601:1c2:980:9ec0::2764] by bombadil.infradead.org with esmtpsa (Exim 4.96 #2 (Red Hat Linux)) id 1qOuAv-00CHuh-1F; Thu, 27 Jul 2023 06:08:37 +0000 Message-ID: <1d363177-2629-1ab3-7a4b-bc67d94bb87a@infradead.org> Date: Wed, 26 Jul 2023 23:08:35 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH v2] init: Add support for rootwait timeout parameter Content-Language: en-US To: Loic Poulain , brauner@kernel.org, viro@zeniv.linux.org.uk, corbet@lwn.net Cc: linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, hch@infradead.org References: <20230726152232.932288-1-loic.poulain@linaro.org> From: Randy Dunlap In-Reply-To: <20230726152232.932288-1-loic.poulain@linaro.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE,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 Hi-- On 7/26/23 08:22, Loic Poulain wrote: > Add an optional timeout arg to 'rootwait' as the maximum time in > seconds to wait for the root device to show up before attempting > forced mount of the root filesystem. > > Use case: > In case of device mapper usage for the rootfs (e.g. root=/dev/dm-0), > if the mapper is not able to create the virtual block for any reason > (wrong arguments, bad dm-verity signature, etc), the `rootwait` param > causes the kernel to wait forever. It may however be desirable to only > wait for a given time and then panic (force mount) to cause device reset. > This gives the bootloader a chance to detect the problem and to take some > measures, such as marking the booted partition as bad (for A/B case) or > entering a recovery mode. > > In success case, mounting happens as soon as the root device is ready, > unlike the existing 'rootdelay' parameter which performs an unconditional > pause. > > Signed-off-by: Loic Poulain > --- > v2: rebase + reword: add use case example > > .../admin-guide/kernel-parameters.txt | 4 ++++ > init/do_mounts.c | 19 +++++++++++++++++-- > 2 files changed, 21 insertions(+), 2 deletions(-) > > diff --git a/init/do_mounts.c b/init/do_mounts.c > index 1aa015883519..118f2bbe7b38 100644 > --- a/init/do_mounts.c > +++ b/init/do_mounts.c > @@ -18,6 +18,7 @@ > #include > #include > #include > +#include > > #include > #include > @@ -71,12 +72,20 @@ static int __init rootwait_setup(char *str) > { > if (*str) > return 0; > - root_wait = 1; > + root_wait = -1; > return 1; > } > > __setup("rootwait", rootwait_setup); > > +static int __init rootwait_timeout_setup(char *str) > +{ > + root_wait = simple_strtoul(str, NULL, 0); Better to use kstrtoul(). simple_strtoul() says: * This function has caveats. Please use kstrtoul instead. and kstrtoul() says: * Returns 0 on success, -ERANGE on overflow and -EINVAL on parsing error. * Preferred over simple_strtoul(). Return code must be checked. > + return 1; > +} > + > +__setup("rootwait=", rootwait_timeout_setup); -- ~Randy