2022-05-18 22:48:08

by Brian Norris

[permalink] [raw]
Subject: [PATCH] usb: Probe EHCI, OHCI controllers asynchronously

From: Dmitry Torokhov <[email protected]>

initcall_debug shows that OHCI controllers take ~60ms to probe on
Rockchip RK3399 systems:

probe of fe3a0000.usb returned 1 after 58941 usecs

A few of these can add up to waste non-trivial amounts of time at boot.

These host controllers don't provide resources to other drivers, so
this shouldn't contribute to exposing race conditions.

Chrome OS kernels have carried this patch on some systems for a while
without issues. Similar patches have been merged for a variety of (e)MMC
host controllers for similar reasons.

Signed-off-by: Dmitry Torokhov <[email protected]>
[Brian: rewrote commit message, refreshed, but retained dtor's original
authorship ]
Signed-off-by: Brian Norris <[email protected]>
---

drivers/usb/host/ehci-platform.c | 1 +
drivers/usb/host/ohci-platform.c | 1 +
2 files changed, 2 insertions(+)

diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c
index 1115431a255d..f343967443e2 100644
--- a/drivers/usb/host/ehci-platform.c
+++ b/drivers/usb/host/ehci-platform.c
@@ -518,6 +518,7 @@ static struct platform_driver ehci_platform_driver = {
.pm = pm_ptr(&ehci_platform_pm_ops),
.of_match_table = vt8500_ehci_ids,
.acpi_match_table = ACPI_PTR(ehci_acpi_match),
+ .probe_type = PROBE_PREFER_ASYNCHRONOUS,
}
};

diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platform.c
index 4a8456f12a73..47dfbfe9e519 100644
--- a/drivers/usb/host/ohci-platform.c
+++ b/drivers/usb/host/ohci-platform.c
@@ -334,6 +334,7 @@ static struct platform_driver ohci_platform_driver = {
.name = "ohci-platform",
.pm = &ohci_platform_pm_ops,
.of_match_table = ohci_platform_ids,
+ .probe_type = PROBE_PREFER_ASYNCHRONOUS,
}
};

--
2.36.1.124.g0e6072fb45-goog



2022-05-19 15:26:57

by Alan Stern

[permalink] [raw]
Subject: Re: [PATCH] usb: Probe EHCI, OHCI controllers asynchronously

On Wed, May 18, 2022 at 03:02:51PM -0700, Brian Norris wrote:
> From: Dmitry Torokhov <[email protected]>
>
> initcall_debug shows that OHCI controllers take ~60ms to probe on
> Rockchip RK3399 systems:
>
> probe of fe3a0000.usb returned 1 after 58941 usecs
>
> A few of these can add up to waste non-trivial amounts of time at boot.
>
> These host controllers don't provide resources to other drivers, so
> this shouldn't contribute to exposing race conditions.
>
> Chrome OS kernels have carried this patch on some systems for a while
> without issues. Similar patches have been merged for a variety of (e)MMC
> host controllers for similar reasons.
>
> Signed-off-by: Dmitry Torokhov <[email protected]>
> [Brian: rewrote commit message, refreshed, but retained dtor's original
> authorship ]
> Signed-off-by: Brian Norris <[email protected]>
> ---

Acked-by: Alan Stern <[email protected]>

> drivers/usb/host/ehci-platform.c | 1 +
> drivers/usb/host/ohci-platform.c | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c
> index 1115431a255d..f343967443e2 100644
> --- a/drivers/usb/host/ehci-platform.c
> +++ b/drivers/usb/host/ehci-platform.c
> @@ -518,6 +518,7 @@ static struct platform_driver ehci_platform_driver = {
> .pm = pm_ptr(&ehci_platform_pm_ops),
> .of_match_table = vt8500_ehci_ids,
> .acpi_match_table = ACPI_PTR(ehci_acpi_match),
> + .probe_type = PROBE_PREFER_ASYNCHRONOUS,
> }
> };
>
> diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platform.c
> index 4a8456f12a73..47dfbfe9e519 100644
> --- a/drivers/usb/host/ohci-platform.c
> +++ b/drivers/usb/host/ohci-platform.c
> @@ -334,6 +334,7 @@ static struct platform_driver ohci_platform_driver = {
> .name = "ohci-platform",
> .pm = &ohci_platform_pm_ops,
> .of_match_table = ohci_platform_ids,
> + .probe_type = PROBE_PREFER_ASYNCHRONOUS,
> }
> };
>
> --
> 2.36.1.124.g0e6072fb45-goog
>

2022-05-23 06:59:00

by Doug Anderson

[permalink] [raw]
Subject: Re: [PATCH] usb: Probe EHCI, OHCI controllers asynchronously

Hi,

On Wed, May 18, 2022 at 3:04 PM Brian Norris <[email protected]> wrote:
>
> From: Dmitry Torokhov <[email protected]>
>
> initcall_debug shows that OHCI controllers take ~60ms to probe on
> Rockchip RK3399 systems:
>
> probe of fe3a0000.usb returned 1 after 58941 usecs
>
> A few of these can add up to waste non-trivial amounts of time at boot.
>
> These host controllers don't provide resources to other drivers, so
> this shouldn't contribute to exposing race conditions.
>
> Chrome OS kernels have carried this patch on some systems for a while
> without issues. Similar patches have been merged for a variety of (e)MMC
> host controllers for similar reasons.
>
> Signed-off-by: Dmitry Torokhov <[email protected]>
> [Brian: rewrote commit message, refreshed, but retained dtor's original
> authorship ]
> Signed-off-by: Brian Norris <[email protected]>
> ---
>
> drivers/usb/host/ehci-platform.c | 1 +
> drivers/usb/host/ohci-platform.c | 1 +
> 2 files changed, 2 insertions(+)

Reviewed-by: Douglas Anderson <[email protected]>