driver core: configurable deferred probe timeout#697
Open
apateriy-qcom wants to merge 3 commits into
Open
Conversation
227e19e to
6795936
Compare
Komal-Bajaj
approved these changes
Jun 11, 2026
…option Code using driver_deferred_probe_check_state() differs from most EPROBE_DEFER handling in the kernel. Where other EPROBE_DEFER handling (e.g. clks, gpios and regulators) waits indefinitely for suppliers to show up, code using driver_deferred_probe_check_state() will fail after the deferred_probe_timeout. This is a problem for generic distro kernels which want to support many boards using a single kernel build. These kernels want as much drivers to be modular as possible. The initrd also should be as small as possible, so the initrd will *not* have drivers not needing to get the rootfs. Combine this with waiting for a full-disk encryption password in the initrd and it is pretty much guaranteed that the default 10s timeout will be hit, causing probe() failures when drivers on the rootfs happen to get modprobe-d before other rootfs modules providing their suppliers. Make the default timeout configurable from Kconfig to allow distro kernel configs where many of the supplier drivers are modules to set the default through Kconfig. Reviewed-by: Saravana Kannan <saravanak@kernel.org> Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com> Link: https://patch.msgid.link/20260314084916.10868-1-johannes.goede@oss.qualcomm.com [ Drop deferred_probe_timeout documentation change in kernel-parameters.txt. - Danilo ] Signed-off-by: Danilo Krummrich <dakr@kernel.org>
…ter documentation Extend the deferred_probe_timeout cmdline parameter documentation, documenting that negative values are treated as an infinite timeout value. Suggested-by: Danilo Krummrich <dakr@kernel.org> Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com> Link: https://patch.msgid.link/20260416144144.54547-1-johannes.goede@oss.qualcomm.com Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Set the deferred probe timeout to 60 seconds in the Qualcomm config fragment.With the kernel default of 10s ,we are observing probe deferrals on Qualcomm platforms where supplier drivers (e.g. regulators, clocks) are probing late; 60s gives sufficient margin without waiting indefinitely. Signed-off-by: Anurag Pateriya <apateriy@qti.qualcomm.com>
6795936 to
f24eb44
Compare
Test Matrix
|
Test Matrix
|
shashim-quic
approved these changes
Jun 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
With the kernel default of 10s ,we are observing probe deferrals
on Qualcomm platforms where supplier drivers (e.g. regulators, clocks)
are probing late; 60s gives sufficient margin without waiting indefinitely.
On distrokernels, many supplier drivers (clocks, regulators) are built as
modules and are not present in the initrd, especially when the system
waits for mounting the rootfs.
The result is that code using driver_deferred_probe_check_state() hits
the timeout and returns a hard failure rather than deferring
indefinitely like other EPROBE_DEFER paths.
The first patch introduces a Kconfig option,CONFIG_DRIVER_DEFERRED_PROBE_TIMEOUT,
so that a suitable default can be selected at build time without requiring
a kernel command-line override. The second patch extends the deferred_probe_timeout
command-line parameter documentation to clarify that negative values
are treated as an infinite timeout. The third patch sets the Kconfig
default to 60 seconds in the Qualcomm config fragment, which gives
supplier drivers enough margin to probe on Qualcomm platforms without
waiting indefinitely.
Anurag Pateriya (1):
QCLINUX: arm64: configs: qcom: Set DRIVER_DEFERRED_PROBE_TIMEOUT to 60
Hans de Goede (2):
driver core: Make deferred_probe_timeout default a Kconfig option
Documentation: update deferred_probe_timeout cmdline parameter documentation
CRs-Fixed: 4519746