Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp5675693iog; Thu, 23 Jun 2022 03:09:16 -0700 (PDT) X-Google-Smtp-Source: AGRyM1ujwaRxV6TAFF9kiWZWfh+6D0czwwmFBHZdYcUFN6QjuRyZGjwx5gx+y6Kp1qY6ve5/SXbo X-Received: by 2002:aa7:d5c9:0:b0:435:8099:30e6 with SMTP id d9-20020aa7d5c9000000b00435809930e6mr9685061eds.384.1655978956364; Thu, 23 Jun 2022 03:09:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655978956; cv=none; d=google.com; s=arc-20160816; b=Iuv7GnUgFmKXMtLQzFT+H9ICLBaYhrTBgluLU+m0rYUZQ00P38pE9qdshL4nmVGpzl BbkXizISmxRPQc0c8EDXcRyeKditAedKjQEoDJWGdSUkM9Jcr6Y8ItghRB8/LU0iPDWm 8etGGorEGeBL7Gg/ixR7vZUfwpHhM02FBhlh4dJys0nXmWkvnpWQax3IxInd85tcvrsj kPDqlZ76/7adeRO5f2j0xToTAAjEu7tBPkPfuaBQImE+hMvD1J1JM9sBh8xnFAy7Ck8r jS8LN3Rz8o4gNm9H1az2U1wjUfNchh5gA1Z0GrwE+HbYbmfQJfBqNjp0X4FlQv9x8LxP ghpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=bAQnJiIrjAU5y65MX9wxhKyuY6/J6ESjTsTXQQsEQZY=; b=QubHKQvBIFraE17whSwsfkSJUawqquFQCKiMSMpiUXdtnet8S8GxvPo+JRO2mDUxWE 4ZyVEx9w1Vx1dWNzEW3uOB8YCqYmwCiphOloHblWi3IJf9Y134mpbRmza472/iQ0knYe wnJqYBnxy/5gD4IOWLtaTR5/jec619gqreVQMdRt3QuV6G58VipLEr1elnCZ0NIgYjYP 61jZW6aGyX69VIhN/exUfiH/7g+IFSwgegy2Hj7yv3u3cC9QH6WwwLATBtbeI5dJjaTQ fdv1xdXoNJ4U9tn//yG9zc2DL8PkoKeA8XNDyT7cvHtbA0Kj3tWisVcG2UKnF27WRODs jKXg== ARC-Authentication-Results: i=1; mx.google.com; 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 h14-20020a0564020e0e00b004357060e676si16224161edh.68.2022.06.23.03.08.41; Thu, 23 Jun 2022 03:09:16 -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; 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 S230444AbiFWKGL (ORCPT + 99 others); Thu, 23 Jun 2022 06:06:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36628 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229595AbiFWKGF (ORCPT ); Thu, 23 Jun 2022 06:06:05 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2ABFE1759C for ; Thu, 23 Jun 2022 03:06:04 -0700 (PDT) Received: from ptx.hi.pengutronix.de ([2001:67c:670:100:1d::c0]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o4JhK-0001s4-PU; Thu, 23 Jun 2022 12:04:26 +0200 Received: from sha by ptx.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1o4JhF-0006Dc-DA; Thu, 23 Jun 2022 12:04:21 +0200 Date: Thu, 23 Jun 2022 12:04:21 +0200 From: sascha hauer To: Saravana Kannan Cc: Greg Kroah-Hartman , "Rafael J. Wysocki" , Rob Herring , Frank Rowand , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Len Brown , peng fan , kevin hilman , ulf hansson , len brown , pavel machek , joerg roedel , will deacon , andrew lunn , heiner kallweit , russell king , "david s. miller" , eric dumazet , jakub kicinski , paolo abeni , linus walleij , hideaki yoshifuji , david ahern , kernel-team@android.com, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, iommu@lists.linux-foundation.org, netdev@vger.kernel.org, linux-gpio@vger.kernel.org, kernel@pengutronix.de, devicetree@vger.kernel.org, linux-acpi@vger.kernel.org Subject: Re: [PATCH v2 2/2] of: base: Avoid console probe delay when fw_devlink.strict=1 Message-ID: <20220623100421.GY1615@pengutronix.de> References: <20220623080344.783549-1-saravanak@google.com> <20220623080344.783549-3-saravanak@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220623080344.783549-3-saravanak@google.com> X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-Accept-Language: de,en X-Accept-Content-Type: text/plain User-Agent: Mutt/1.10.1 (2018-07-13) X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::c0 X-SA-Exim-Mail-From: sha@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, 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 On Thu, Jun 23, 2022 at 01:03:43AM -0700, Saravana Kannan wrote: > Commit 71066545b48e ("driver core: Set fw_devlink.strict=1 by default") > enabled iommus and dmas dependency enforcement by default. On some > systems, this caused the console device's probe to get delayed until the > deferred_probe_timeout expires. > > We need consoles to work as soon as possible, so mark the console device > node with FWNODE_FLAG_BEST_EFFORT so that fw_delink knows not to delay > the probe of the console device for suppliers without drivers. The > driver can then make the decision on where it can probe without those > suppliers or defer its probe. > > Fixes: 71066545b48e ("driver core: Set fw_devlink.strict=1 by default") > Reported-by: Sascha Hauer > Reported-by: Peng Fan > Signed-off-by: Saravana Kannan > Tested-by: Peng Fan > --- > drivers/of/base.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/of/base.c b/drivers/of/base.c > index d4f98c8469ed..a19cd0c73644 100644 > --- a/drivers/of/base.c > +++ b/drivers/of/base.c > @@ -1919,6 +1919,8 @@ void of_alias_scan(void * (*dt_alloc)(u64 size, u64 align)) > of_property_read_string(of_aliases, "stdout", &name); > if (name) > of_stdout = of_find_node_opts_by_path(name, &of_stdout_options); > + if (of_stdout) > + of_stdout->fwnode.flags |= FWNODE_FLAG_BEST_EFFORT; The device given in the stdout-path property doesn't necessarily have to be consistent with the console= parameter. The former is usually statically set in the device trees contained in the kernel while the latter is dynamically set by the bootloader. So if you change the console uart in the bootloader then you'll still run into this trap. It's problematic to consult only the device tree for dependencies. I found several examples of drivers in the tree for which dma support is optional. They use it if they can, but continue without it when not available. "hwlock" is another property which consider several drivers as optional. Also consider SoCs in early upstreaming phases when the device tree is merged with "dmas" or "hwlock" properties, but the corresponding drivers are not yet upstreamed. It's not nice to defer probing of all these devices for a long time. I wonder if it wouldn't be a better approach to just probe all devices and record the device(node) they are waiting on. Then you know that you don't need to probe them again until the device they are waiting for is available. Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |