Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp5422742iog; Wed, 22 Jun 2022 20:05:59 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tvL3RsCpjYDMJB2Z46iy+rR1j158KbAF6XuCKmCLDQbdLsmQ+6x84LqWUOHBX1skV75rKC X-Received: by 2002:a62:601:0:b0:522:7a73:c0b2 with SMTP id 1-20020a620601000000b005227a73c0b2mr39229078pfg.33.1655953559285; Wed, 22 Jun 2022 20:05:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655953559; cv=none; d=google.com; s=arc-20160816; b=QcBi1vsctBnOSXlM+nps4erILKZgqKwFBitZ1dUk6PByidc0IOGxX0j2aveI9C8eFx Pl2WKdtZA9qUxFY1BkOKXdC+92SPlYTzvRWyAKIpHfMPGkAWWjvVvuKAO+mDrr/VAMIN 39Il+aEb7gpT7FLO/wwk4l9qMNiDodXT+UE0FKXUM/KeU28hL2bqNZzT4jcxFR2mx/yY 5oX/U2Ra1v/YrJAiMmASJco30ppo+G3W2r3szWlRGkwBQGZM173TRKKpG5hHdxcCXke6 M0C0X9ZRULWHUlBenP7oW/Jry17PZaTQcdlTm6qifyExG143p2PRLTQ6Eq+czrUiVxVa lRfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=49Nk7hmUdiJCNEYE0l0yCJRDHLf0jxWA0g/35538DuA=; b=aMuSwZ9zDLSLh9dmWqieFP9ahsfAqHnb0g9L46ogk7yv238e/QPmJbJe1Z52soJDQS cED6QHBfWGcHA7YWnsBdc0Qhs0t3YkAf3sXtuyUTGanWe//EXUmJ4GQ7XlvKU/zDF0yi Z5S3vrm+ICuA/Xk7TqZziFWBOJ5E/xSeHIbvnCR1c63HwxXp2zTJlMm/MRGTuYg9UkeU X1db/VKUP6VvqjtDLXZOM7v0X2FxDJR7sJezAIYxnGjTnJVPllFRnD+F1lI9snAzvbsu J535shlV2PFhcV6hwoHy76aM/lxrll2+XKzN8Vh8ye0b/Y5wk5FbHoa//ix9RH5FdahS 84HA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=aGy21QAm; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g11-20020a170902740b00b00158d1f2d451si21790175pll.45.2022.06.22.20.05.47; Wed, 22 Jun 2022 20:05:59 -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=@google.com header.s=20210112 header.b=aGy21QAm; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236468AbiFWChJ (ORCPT + 99 others); Wed, 22 Jun 2022 22:37:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42186 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236606AbiFWChD (ORCPT ); Wed, 22 Jun 2022 22:37:03 -0400 Received: from mail-yw1-x1133.google.com (mail-yw1-x1133.google.com [IPv6:2607:f8b0:4864:20::1133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CCD403CA7A for ; Wed, 22 Jun 2022 19:37:01 -0700 (PDT) Received: by mail-yw1-x1133.google.com with SMTP id 00721157ae682-3177f4ce3e2so157423597b3.5 for ; Wed, 22 Jun 2022 19:37:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=49Nk7hmUdiJCNEYE0l0yCJRDHLf0jxWA0g/35538DuA=; b=aGy21QAm2ckk1RncPP4GRr5ft+rJupnCr6OT/Le1/gXU/A9f6Fk/UaMnFtGMpAjRPC 7wwBIH+TFzD39mTpiazmfjeXUmlQ3UU9gZcNik0JvaaSeoYeGqJqUscvkHXqOFVcMa/R SuB7JET94Z5HUQ9MShoToSmLuuoKSHVqvbBlOOIFg/fHYUewTUv80g5mgSDKZx10uHd+ qBb/Z0LvSv2ZbksXBn+fLEy1JQwEVzZq2CeQuOzjntgynlq7qSPTqha3lZMvGlHRl97b pjpaedi+ISyzZimuCTzg0/3RdM+bfRpsyRaIlvpZWkywzNQwa7pmPkUQbpSKsuz3eRsH N0NQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=49Nk7hmUdiJCNEYE0l0yCJRDHLf0jxWA0g/35538DuA=; b=OYHjjTQyTQzaKULdbI0lRkb8YZWBo16sM/PpOugb2Mbt5pxbyGPrcT518VAhqzRow6 ghp19I78p8LH7Y3orCA/tGvhgwHPyJop997Lh0z6oFEpKmOqTw9ZLSJVMv7Sjzxf+DXW KblbtPffzN+KFlcK+I81MbYWBL/Anzg2Pgzid7Mf3Q8qZOO30UtL18ydnVyN9rm8FE98 qcEUVLkZ9HZpQgB3Mf1MIyT7gjWHF2rG2iIlz/QPWHSgypJtzxLLMbeRN1LK1PHeFV8g nhSukoIZ3nC5ZFhM/EsEpP9jJjGuXHxvscgNAWjSvT+eAJCOiEl/o7/SmTMzkZbF0aIE +HIA== X-Gm-Message-State: AJIora8O7ljptOV4J1VKUGmC3moHDedQOH8W6FP0+9ymTL+5Y8L5E2g4 X4CBGtPd3xAeMZ/MIQe4sFfJUDBYbS6Y+qvzrcmY/A== X-Received: by 2002:a81:4896:0:b0:317:f767:95f8 with SMTP id v144-20020a814896000000b00317f76795f8mr8455343ywa.218.1655951820855; Wed, 22 Jun 2022 19:37:00 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Saravana Kannan Date: Wed, 22 Jun 2022 19:36:24 -0700 Message-ID: Subject: Re: Default async probing for DT based systems To: Marek Szyprowski Cc: LKML , linux-arm-kernel , Geert Uytterhoeven , Kevin Hilman , Greg Kroah-Hartman , Marc Zyngier , Will Deacon , Rob Herring , "Rafael J. Wysocki" , Ulf Hansson , Linus Walleij , Sebastian Andrzej Siewior , Android Kernel Team , Linux PM Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=unavailable 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 On Fri, Jun 17, 2022 at 11:04 AM Saravana Kannan wrote: > > On Fri, Jun 17, 2022 at 2:04 AM Marek Szyprowski > wrote: > > > > Hi Saravana, > > > > On 16.06.2022 05:24, Saravana Kannan wrote: > > > Hi, > > > > > > TL;DR: I want to improve boot times by enabling async probing by > > > default for DT based systems. Can you give it a shot please? > > > > Yes, I've gave it a try on my test systems. It looks that there are a > > few issues. The first one, the most obvious to notice, is related to > > __request_module() calls from various drivers and frameworks. Here are > > some examples: > > > > ------------[ cut here ]------------ > > WARNING: CPU: 3 PID: 73 at kernel/kmod.c:136 __request_module+0x230/0x600 > > Modules linked in: > > CPU: 3 PID: 73 Comm: kworker/u12:5 Not tainted 5.19.0-rc2-next-20220615+ > > #5203 > > Hardware name: ARM Juno development board (r1) (DT) > > Workqueue: events_unbound async_run_entry_fn > > pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) > > UDC core: g_ether: couldn't find an available UDC > > pc : __request_module+0x230/0x600 > > lr : __request_module+0x228/0x600 > > Ah, I think I know what these might be. Going by memory, > __request_module() from asyc thread context has some issues for module > loading. So I think a check was added like this. And I think the check > is triggering when it shouldn't (this isn't module context here). My memory was right and this is indeed the spurious warning that was meant to cover a potential deadlock in a module load path. I was trying to disable this warning till we hit the point in the boot flow where request_module() can actually succeed. But I got stuck trying to figure it out. It looks like the usermode helper that's used for module loading triggered by request_module() is enabled in populate_rootfs() that runs well before most of the initcalls are done. I was under the impression that init with pid 0 would be the first userspace thread that can start. But I don't see anything obvious that prevents the usermode helper from running and loading a module before init process has been exec'ed after we set system_state to SYSTEM_RUNNING. Can someone clarify when is the earliest request_module() can succeed? Thanks, Saravana