Subject: [PATCH v2] driver core: add a debugfs entry to show deferred devices

From: [email-masked] (Greg Kroah-Hartman)
Date: Sun, 8 Jul 2018 15:19:50 +0200

On Sun, Jul 08, 2018 at 02:31:49AM +0200, Javier Martinez Canillas wrote:
> Hi Greg,
> 
> On 07/07/2018 05:59 PM, Greg Kroah-Hartman wrote:
> > On Thu, Jun 28, 2018 at 12:06:56AM +0200, Javier Martinez Canillas wrote:
> >> With Device Trees (DT), the dependencies of the devices are defined in the
> >> DT, then the drivers parse that information to lookup the needed resources
> >> that have as dependencies.
> >>
> >> Since drivers and devices are registered in a non-deterministic way, it is
> >> possible that a device that is a dependency has not been registered yet by
> >> the time that is looked up.
> >>
> >> In this case the driver that requires this dependency cannot probe and has
> >> to defer it. So the driver core adds it to a list of deferred devices that
> >> is iterated again every time that a new driver is probed successfully.
> >>
> >> For debugging purposes it may be useful to know what are the devices whose
> >> probe function was deferred. Add a debugfs entry showing that information.
> >>
> >>   $ cat /sys/kernel/debug/devices_deferred
> >>   48070000.i2c:twl at 48:bci
> >>   musb-hdrc.0.auto
> >>   omapdrm.0
> >>
> >> This information could be obtained partially by enabling debugging, but it
> >> means that the kernel log has to be parsed and the probe deferral balanced
> >> with the successes. This can be error probe and has to be done in a ad-hoc
> >> manner by everyone who needs to debug these kind of issues.
> >>
> >> Since the information is already known by the kernel, just show it to make
> >> it easier to debug.
> >>
> >> Signed-off-by: Javier Martinez Canillas <[email-masked]>
> >> Reviewed-by: Mark Brown <[email-masked]>
> > 
> > This doesn't apply to my tree anymore :(
> >
> 
> I see, I made sure that it applied on top of linux-next.
>  
> > Can you rebase and resend?
> >
> 
> I guess you want me to rebase on top of your driver-core-next branch. I think
> that linux-next should pull that branch instead of the driver-core-linus one:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Next/Trees#n29

Both are in linux-next, it just takes a day or so for the
driver-core-next branch to get merged in.

thanks,

greg k-h