From: Frank Rowand <frowand.list@gmail.com>
To: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: "Russell King - ARM Linux" <linux@arm.linux.org.uk>,
"Geert Uytterhoeven" <geert@linux-m68k.org>,
"Tomeu Vizoso" <tomeu.vizoso@collabora.com>,
"Mark Brown" <broonie@kernel.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Rob Herring" <robh+dt@kernel.org>,
"Michael Turquette" <mturquette@baylibre.com>,
"Stephen Boyd" <sboyd@codeaurora.org>,
"Vinod Koul" <vinod.koul@intel.com>,
"Dan Williams" <dan.j.williams@intel.com>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Alexandre Courbot" <gnurou@gmail.com>,
"Thierry Reding" <thierry.reding@gmail.com>,
"David Airlie" <airlied@linux.ie>,
"Terje Bergström" <tbergstrom@nvidia.com>,
"Stephen Warren" <swarren@wwwdotorg.org>,
"Wolfram Sang" <wsa@the-dreams.de>,
"Grant Likely" <grant.likely@linaro.org>,
"Kishon Vijay Abraham I" <kishon@ti.com>,
"Sebastian Reichel" <sre@kernel.org>,
"Dmitry Eremin-Solenikov" <dbaryshkov@gmail.com>
Subject: Re: Alternative approach to solve the deferred probe
Date: Wed, 21 Oct 2015 11:02:59 -0700 [thread overview]
Message-ID: <5627D353.2040007@gmail.com> (raw)
In-Reply-To: <5627C381.60602@ti.com>
On 10/21/2015 9:55 AM, Grygorii Strashko wrote:
> On 10/21/2015 06:36 PM, Frank Rowand wrote:
>> On 10/21/2015 1:18 AM, Russell King - ARM Linux wrote:
>>> On Tue, Oct 20, 2015 at 08:58:19PM -0700, Frank Rowand wrote:
>>>> On 10/20/2015 8:46 AM, Russell King - ARM Linux wrote:
>>
>> < snip >
>>
>>>>> +
>>>>> static bool driver_deferred_probe_enable = false;
>>>>> +
>>>>> /**
>>>>> * driver_deferred_probe_trigger() - Kick off re-probing deferred devices
>>>>> *
>>>>> @@ -188,6 +210,13 @@ static int deferred_probe_initcall(void)
>>>>> driver_deferred_probe_trigger();
>>>>
>>>> Couldn't you put the "driver_deferred_probe_report = true" here? And then
>>>> not add another round of probes.
>>>
>>> The idea is not to report anything for drivers that were deferred
>>> during the normal bootup. The above is part of the normal bootup,
>>> and the deferred activity should not be warned about.
>>
>> The above is currently the last point for probe to succeed or defer
>> (until possibly, as you mentioned, module loading resolves the defer).
>> If a probe defers above, it will defer again below. The set of defers
>> should be exactly the same above and below.
>>
>
> Unfortunately this is not "the last point for probe to succeed or defer".
> There are still a bunch of drivers in Kernel which will be probed at late_initcall() level.
> (like ./drivers/net/ethernet/ti/cpsw.c => late_initcall(cpsw_init);
Yes, cpsw_init() should _not_ be a late_initcall. This is yet another
example of playing games with ordering probes that we have been trying
to eliminate.
Thanks for pointing out one of the resulting problems this causes for the
deferred probe mechanism.
> Yes - they probably need to be updated to use module_init(), but that's what
> we have now). Those drivers will re-trigger deferred device probing if their
> probe succeeded.
Yes, if cpsw_init() leads to a successful probe, then deferred device probing
will be re-triggered. I do not know if cpsw_init() will be called before or
after deferred_probe_initcall(). The general initcall mechanism does not
provide any ordering guarantees between the two functions because they are
at the same initcall level.
>
> As result, it is impossible to say when will it happen the
> "final round of deferred device probing" :( and final list of drivers which
> was "deferred forever" will be know only when kernel exits to User space
> ("deferred forever" - before loading modules).
>
> May be, we also can consider adding debug_fs entry which can be used to display
> actual state of deferred_probe_pending_list?
>
>>>
>>> If we have any devices still deferring after _this_ round, that must
>>> indicate that some resource they want is not available, and that
>>> should be warned about.
>>>
>>> Of course, modules can defer too - and I made some suggestions in my
>>> waffle above the patch about that.
>>>
>>
>> < adding back trimmed, for fuller context >
>>
>>>>> /* Sort as many dependencies as possible before exiting initcalls */
>>>>> flush_workqueue(deferred_wq);
>>>>> +
>>>>> + /* Now one final round, reporting any devices that remain deferred */
>>>>> + driver_deferred_probe_report = true;
>>>>> + driver_deferred_probe_trigger();
>>>>> + /* Sort as many dependencies as possible before exiting initcalls */
>>>>> + flush_workqueue(deferred_wq);
>>>>> +
>>>>> return 0;
>>>>> }
>
>
next prev parent reply other threads:[~2015-10-21 18:02 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-14 8:34 [GIT PULL] On-demand device probing Tomeu Vizoso
2015-10-14 9:26 ` Mark Brown
2015-10-15 11:42 ` Tomeu Vizoso
[not found] ` <1444909328-24761-1-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-10-16 21:23 ` Olof Johansson
2015-10-17 15:19 ` Rob Herring
2015-10-19 16:52 ` Olof Johansson
2015-10-17 6:57 ` Greg Kroah-Hartman
2015-10-17 15:04 ` Rob Herring
2015-10-17 15:47 ` Greg Kroah-Hartman
2015-10-17 16:28 ` Rob Herring
2015-10-17 16:56 ` Greg Kroah-Hartman
2015-10-17 17:54 ` Rob Clark
2015-10-17 18:27 ` Greg Kroah-Hartman
2015-10-17 18:45 ` Rob Clark
2015-10-17 18:59 ` Greg Kroah-Hartman
2015-10-17 19:39 ` Rob Clark
2015-10-17 20:22 ` Greg Kroah-Hartman
2015-10-17 19:04 ` Noralf Trønnes
2015-10-17 19:48 ` Rob Clark
2015-10-18 19:41 ` Mark Brown
2015-10-18 19:29 ` Mark Brown
2015-10-18 19:37 ` Greg Kroah-Hartman
2015-10-18 19:53 ` Mark Brown
2015-10-19 9:44 ` David Woodhouse
2015-10-19 9:52 ` Russell King - ARM Linux
2015-10-19 11:02 ` Mark Brown
2015-10-19 12:35 ` Rob Herring
2015-10-19 12:47 ` David Woodhouse
2015-10-19 14:50 ` Mark Brown
2015-10-19 15:29 ` David Woodhouse
2015-10-19 15:43 ` Russell King - ARM Linux
2015-10-19 18:27 ` Uwe Kleine-König
2015-10-19 18:39 ` Russell King - ARM Linux
2015-10-19 23:47 ` Alexandre Courbot
2015-10-20 7:14 ` gpiod API considerations [Was: [GIT PULL] On-demand device probing] Uwe Kleine-König
2015-10-20 11:12 ` [GIT PULL] On-demand device probing David Woodhouse
2015-10-19 15:58 ` Rob Herring
2015-10-19 21:40 ` Rafael J. Wysocki
2015-10-19 22:58 ` Rob Herring
[not found] ` <CAL_JsqKa3MFJUWKV2KxPE_NmrP2g4dOD3zr+0Kyx4yBkDOg2HA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-20 7:56 ` Rafael J. Wysocki
2015-10-20 14:15 ` Rob Herring
[not found] ` <CAL_JsqJuu5_Osqi+X6M6UeRDZFQB+_8riYDF1gvsGayk5-4SFw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-20 14:40 ` Alan Stern
2015-10-20 15:36 ` Mark Brown
2015-10-20 16:04 ` Alan Stern
2015-10-20 16:21 ` Tomeu Vizoso
2015-10-20 17:14 ` Alan Stern
2015-10-20 19:35 ` Mark Brown
2015-10-20 23:35 ` Rafael J. Wysocki
2015-10-21 6:15 ` Jean-Francois Moine
2015-10-22 0:54 ` Rafael J. Wysocki
2015-10-22 9:14 ` Tomeu Vizoso
2015-10-27 5:03 ` Rafael J. Wysocki
2015-10-20 23:34 ` Rafael J. Wysocki
2015-10-21 8:55 ` Geert Uytterhoeven
2015-10-21 23:39 ` Rafael J. Wysocki
2015-10-19 16:04 ` Mark Brown
2015-10-19 12:34 ` Tomeu Vizoso
2015-10-19 13:18 ` Russell King - ARM Linux
[not found] ` <20151019131821.GA32532-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2015-10-19 14:10 ` Tomeu Vizoso
2015-10-19 14:30 ` Russell King - ARM Linux
2015-10-19 15:00 ` Tomeu Vizoso
2015-10-19 15:35 ` Russell King - ARM Linux
2015-10-19 16:21 ` Geert Uytterhoeven
2015-10-19 16:45 ` Russell King - ARM Linux
2015-10-20 15:46 ` Alternative approach to solve the deferred probe (was: [GIT PULL] On-demand device probing) Russell King - ARM Linux
2015-10-21 3:58 ` Alternative approach to solve the deferred probe Frank Rowand
2015-10-21 8:18 ` Russell King - ARM Linux
2015-10-21 15:36 ` Frank Rowand
2015-10-21 16:55 ` Grygorii Strashko
2015-10-21 17:20 ` Russell King - ARM Linux
2015-10-21 18:13 ` Grygorii Strashko
2015-10-21 18:28 ` Russell King - ARM Linux
2015-10-22 15:12 ` Grygorii Strashko
2015-10-21 18:02 ` Frank Rowand [this message]
2015-10-21 18:29 ` Grygorii Strashko
2015-10-21 20:35 ` Russell King - ARM Linux
2015-10-22 0:05 ` Frank Rowand
2015-10-22 13:20 ` Alternative approach to solve the deferred probe (was: [GIT PULL] On-demand device probing) Mark Brown
[not found] ` <CAAObsKB2BUZ-smid45wOdAQw6h2yNqCydk+azAFNk69ewHJtZQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-21 15:59 ` [GIT PULL] On-demand device probing Frank Rowand
2015-10-21 16:27 ` Mark Brown
2015-10-21 18:18 ` Frank Rowand
2015-10-21 21:03 ` Mark Brown
2015-10-21 21:12 ` Rob Herring
2015-10-21 21:50 ` Frank Rowand
2015-10-22 9:05 ` Tomeu Vizoso
2015-10-22 14:38 ` Greg Kroah-Hartman
2015-10-22 14:44 ` Greg Kroah-Hartman
[not found] ` <20151022144405.GC21861-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-10-22 15:02 ` Russell King - ARM Linux
2015-10-22 23:33 ` Mark Brown
2015-10-22 18:53 ` Frank Rowand
2015-10-22 19:26 ` Greg Kroah-Hartman
[not found] ` <20151022192639.GC27248-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-10-23 12:28 ` Tomeu Vizoso
[not found] ` <562930AB.1070203-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-10-23 15:45 ` Tim Bird
2015-10-23 16:34 ` Rob Herring
2015-10-24 14:17 ` Rafael J. Wysocki
2015-10-24 22:06 ` Mark Brown
2015-10-25 13:54 ` Rafael J. Wysocki
2015-10-26 1:12 ` Mark Brown
2015-10-26 10:51 ` Michael Turquette
2015-10-26 12:55 ` Tomeu Vizoso
2015-10-26 23:37 ` Rafael J. Wysocki
2015-10-25 19:45 ` Andrew F. Davis
2015-10-24 17:55 ` Geert Uytterhoeven
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=5627D353.2040007@gmail.com \
--to=frowand.list@gmail.com \
--cc=airlied@linux.ie \
--cc=broonie@kernel.org \
--cc=dan.j.williams@intel.com \
--cc=dbaryshkov@gmail.com \
--cc=geert@linux-m68k.org \
--cc=gnurou@gmail.com \
--cc=grant.likely@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=grygorii.strashko@ti.com \
--cc=kishon@ti.com \
--cc=linus.walleij@linaro.org \
--cc=linux@arm.linux.org.uk \
--cc=mturquette@baylibre.com \
--cc=robh+dt@kernel.org \
--cc=sboyd@codeaurora.org \
--cc=sre@kernel.org \
--cc=swarren@wwwdotorg.org \
--cc=tbergstrom@nvidia.com \
--cc=thierry.reding@gmail.com \
--cc=tomeu.vizoso@collabora.com \
--cc=vinod.koul@intel.com \
--cc=wsa@the-dreams.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).