All of lore.kernel.org
 help / color / mirror / Atom feed
From: Javier Martinez Canillas <javierm@redhat.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-kernel@vger.kernel.org,
	Saravana Kannan <saravanak@google.com>,
	Peter Robinson <pbrobinson@redhat.com>,
	Steev Klimaszewski <steev@kali.org>,
	Rob Herring <robh@kernel.org>,
	Sergio Lopez Pascual <slp@redhat.com>,
	Enric Balletbo i Serra <eballetbo@redhat.com>,
	John Stultz <jstultz@google.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>
Subject: Re: [PATCH] driver core: Disable driver deferred probe timeout by default
Date: Mon, 14 Nov 2022 12:56:32 +0100	[thread overview]
Message-ID: <9d53f7f9-b77b-21ff-500a-88f3a7fcee80@redhat.com> (raw)
In-Reply-To: <Y3IonmwrJ3aqDbAw@kroah.com>

On 11/14/22 12:38, Greg Kroah-Hartman wrote:
> On Mon, Nov 14, 2022 at 12:13:15PM +0100, Javier Martinez Canillas wrote:
>> Hello Greg,

[...]

>> I even gave an example about general purpose distributions that build as
>> much as possible as a module. What more info do you think that is missing?
> 
> Exact systems that this is failing on would be great to have.
>

The exact system is a Snapdragon SC7180 based HP X2 Chromebook with latest
Fedora Rawhide image (kernel version 6.1-rc4). The reason why is timing out
is that the arm_smmu driver is built-in (CONFIG_ARM_SMMU=y) but it depends
on gpucc-sc7180 clk driver that's built as module (CONFIG_SC_GPUCC_7180=m).

 >>> failing on the current value?  What drivers are causing the long delay
>>> here?  No one should be having to wait 10 seconds for a deferred delay
>>> on a real system as that feels really wrong.
>>>
>>
>> Not really, it depends if the drivers are built-in, built as modules, in
>> the initramfs or in the rootfs. A 10 seconds might not be enough if these
>> modules are in the root partition and need to wait for this to be mounted
>> and udev to load the modules, etc.
> 
> How does it take 10 seconds to load the initramfs for a system that
> requires deferred probe devices?  What typs of hardware is this?
>

That could depend on may things. The dependency of the systemd unit files,
whether NetworkManager-wait-online.service is enabled or not, etc. It can
really take more than 10 seconds on some systems to load all the modules.
 
[...]

>>
>> A nice feature of the probe deferral mechanism is that it was simple and
>> reliable. Adding a timeout makes it non-deterministic and more fragile IMO.
> 
> deferred probe was never simple or reliable or determinisitic.  It was a
> hack we had to implement to handle complex hardware situations and
> loadable drivers.  Let's not try to paper over driver bugs here by
> making the timeout "forever" but rather fix the root problem in the
> broken drivers.
>

I don't understand how adding a 10 secs timeout would make it more robust than
just letting the driver core to attempt probing the deferred drivers again for
every driver (or device) that gets registered.
 
> So, what drivers do we need to fix up?
> 

So what exactly needs to get fixed on the arm_smmu and gpucc-sc7180 drivers
mentioned? Yes, we could built both of them as =y and make sure that drivers
are registered and probed before the initcalls are done, but if we do that,
we will need to have most of the drivers built-in in the Fedora kernel. That
does not scale for all the platforms that we need to support.

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat


  reply	other threads:[~2022-11-14 12:00 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-14 10:43 [PATCH] driver core: Disable driver deferred probe timeout by default Javier Martinez Canillas
2022-11-14 10:54 ` Greg Kroah-Hartman
2022-11-14 11:13   ` Javier Martinez Canillas
2022-11-14 11:38     ` Greg Kroah-Hartman
2022-11-14 11:56       ` Javier Martinez Canillas [this message]
2022-11-14 16:20         ` Steev Klimaszewski
2022-11-15  9:33 ` John Stultz
2022-11-15 10:52   ` Javier Martinez Canillas
2022-11-16 20:49     ` John Stultz
2022-11-17  8:14       ` Javier Martinez Canillas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9d53f7f9-b77b-21ff-500a-88f3a7fcee80@redhat.com \
    --to=javierm@redhat.com \
    --cc=eballetbo@redhat.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jstultz@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbrobinson@redhat.com \
    --cc=rafael@kernel.org \
    --cc=robh@kernel.org \
    --cc=saravanak@google.com \
    --cc=slp@redhat.com \
    --cc=steev@kali.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.