Messages in this thread | | | Date | Wed, 01 Aug 2018 14:18:09 -0700 | From | rishabhb@codeauro ... | Subject | Re: [PATCH] dd: Invoke one probe retry cycle after every initcall level |
| |
On 2018-07-24 01:24, Rafael J. Wysocki wrote: > On Mon, Jul 23, 2018 at 10:22 PM, <rishabhb@codeaurora.org> wrote: >> On 2018-07-23 04:17, Rafael J. Wysocki wrote: >>> >>> On Thu, Jul 19, 2018 at 11:24 PM, Rishabh Bhatnagar >>> <rishabhb@codeaurora.org> wrote: >>>> >>>> Drivers that are registered at an initcall level may have to >>>> wait until late_init before the probe deferral mechanism can >>>> retry their probe functions. It is possible that their >>>> dependencies were resolved much earlier, in some cases even >>>> before the next initcall level. Invoke one probe retry cycle >>>> at every _sync initcall level, allowing these drivers to be >>>> probed earlier. >>> >>> >>> Can you please say something about the actual use case this is >>> expected to address? >> >> We have a display driver that depends 3 other devices to be >> probed so that it can bring-up the display. Because of dependencies >> not being met the deferral mechanism defers the probes for a later >> time, >> even though the dependencies might be met earlier. With this change >> display can be brought up much earlier. > > OK > > What runlevel brings up the display after the change? > > Thanks, > Rafael After the change the display can come up after device_initcall level itself. The above mentioned 3 devices are probed at 0.503253, 0.505210 and 0.523264 secs. Only the first device is probed successfully. With the current deferral mechanism the devices get probed again after late_initcall at 9.19 and 9.35 secs. So display can only come up after 9.35 secs. With this change the devices are re-probed successfully at 0.60 and 0.613 secs. Therefore display can come just after 0.613 secs. This change helps in overall android bootup as well.
-Rishabh
| |