All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Landley <rob@landley.net>
To: Nicolas Pitre <nico@fluxnic.net>,
	Alexandre Belloni <alexandre.belloni@free-electrons.com>
Cc: "Bird, Tim" <Tim.Bird@sonymobile.com>,
	Grant Likely <grant.likely@secretlab.ca>,
	Borislav Petkov <bp@alien8.de>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	"linux-embedded@vger.kernel.org" <linux-embedded@vger.kernel.org>,
	Dirk Behme <dirk.behme@gmail.com>,
	"challinan@gmail.com" <challinan@gmail.com>
Subject: Re: Why is the deferred initcall patch not mainline?
Date: Thu, 23 Oct 2014 17:01:28 -0500	[thread overview]
Message-ID: <54497AB8.10609@landley.net> (raw)
In-Reply-To: <alpine.LFD.2.11.1410231420080.6969@knanqh.ubzr>

On 10/23/14 14:05, Nicolas Pitre wrote:
> On Thu, 23 Oct 2014, Alexandre Belloni wrote:
> 
>> On 23/10/2014 at 13:56:44 -0400, Nicolas Pitre wrote :
>>> On Thu, 23 Oct 2014, Bird, Tim wrote:
>>> Why a trigger?  I'm suggesting no trigger at all is needed.
>>>
>>> Let all initcalls start initializing whenever they can.  Simply that 
>>> they shouldn't prevent user space from running early.
>>>
>>> Because initcalls are running in parallel, then they must be using 
>>> separate kernel threads.  It may be possible to adjust their priority so 
>>> if one of them is actually using a lot of CPU cycles then it will run 
>>> only when all the other threads (including user space) are no longer 
>>> running.
>>>
>>
>> You probably can't do that without introducing race conditions. A number
>> of userspace libraries and script are actually expecting init and probe
>> to be synchronous.
> 
> They already have to cope with the fact that most things can be 
> available through not-yet-loaded modules, or may never be there at all. 
> If not then they should be fixed.
> 
> And if you do rely on such a feature for your small embedded 
> system then you won't have that many libs and scripts to fix.

There are userspace libraries distinguishing between init and probe?
I.E. treating them as two separate things already?

So how were they accessing them as two separate things before this patch
set?

>> I will refer to the async probe discussion and the
>> following thread:
>>
>> http://thread.gmane.org/gmane.linux.kernel/1781529
> 
> I still don't think that is a good idea at all.  This async probe 
> concept requires a trigger from user space and that opens many cans of 
> worms as user space now has to be aware of specific kernel driver 
> modules, their ordering dependencies, etc.
> 
> My point is simply not to defer any initialization at all.  This way you 
> don't have to select which module or initcall to send a trigger for 
> later on.

Why would this be hard?

for i in $(find /sys/module -name initstate)
do
  [ "$(cat $i)" != live ] && echo "kick" > $i
done

And I'm confused that you're concerned about init order so your solution
is to do nothing, thereby preserving the existing init order which could
not _possibly_ be exposed verbatim to userspace...

> Once again, what is the actual problem you want to solve?  If it is 
> about making sure user space can execute ASAP then _that_ should be the 
> topic, not figuring out how to implement a particular solution.
> 
>> Anyway, your userspace will have to have a way to know what has been
>> initialized.
> 
> Hotplug notifications via dbus.

Wait, we need a _third_ mechanism for hotplug notifications now? (The
/proc/sys/kernel/hotplug helper, netlink, and you want another one?)

>> On my side, I was also using that mechanism to delay the network stack 
>> init but I still want to know when my dhcp client can start for 
>> example.
> 
> Ditto.  And not only do you want to know when the network stack is 
> initialized, but you also need to wait for a link to be established 
> before DHCP can work.

Um, doesn't the existing hotplug mechanism _already_ give us
notification that eth0 and similar showed up? (Pretty sure I hit that
while poking at mdev, although it was a while ago...)

Increasingly confused,

Rob

  parent reply	other threads:[~2014-10-23 22:01 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-18  5:07 Why is the deferred initcall patch not mainline? Dirk Behme
2014-10-18  8:11 ` Bird, Tim
2014-10-18 14:05   ` Alexandre Belloni
2014-10-18 21:09     ` Bird, Tim
2014-10-20  8:32     ` Geert Uytterhoeven
2014-10-19  6:59   ` Dirk Behme
2014-10-21 11:27     ` Alexandre Belloni
2014-10-21 12:52   ` Grant Likely
2014-10-21 12:53     ` Grant Likely
2014-10-21 16:31     ` Nicolas Pitre
2014-10-21 19:37       ` Bird, Tim
2014-10-21 19:58         ` Nicolas Pitre
2014-10-22 10:05           ` Geert Uytterhoeven
2014-10-22 15:05           ` Rob Landley
2014-10-22 15:49             ` Nicolas Pitre
2014-10-23 17:21               ` Bird, Tim
2014-10-23 17:56                 ` Nicolas Pitre
2014-10-23 18:13                   ` Alexandre Belloni
2014-10-23 19:05                     ` Nicolas Pitre
2014-10-23 20:10                       ` Bird, Tim
2014-10-23 20:50                         ` Nicolas Pitre
2014-10-23 22:37                           ` Rob Landley
2014-10-24  0:36                             ` Nicolas Pitre
2014-10-24 19:38                               ` Rob Landley
2014-10-24 20:28                                 ` Geert Uytterhoeven
2014-10-27 20:29                                   ` Nicolas Pitre
2014-10-27 21:37                                     ` Alexandre Belloni
2014-10-29 23:49                                     ` Tim Bird
2014-10-30  8:51                                       ` Geert Uytterhoeven
2014-11-02  2:37                                         ` Nicolas Pitre
2014-11-02  9:01                                           ` Geert Uytterhoeven
2014-11-02  3:46                                       ` Nicolas Pitre
2014-10-24 21:05                                 ` Nicolas Pitre
2014-10-23 22:01                       ` Rob Landley [this message]
2014-10-24  0:31                         ` Nicolas Pitre
2014-10-23 18:37                 ` Rob Landley
2014-10-22  5:31         ` Dirk Behme
2014-10-22  9:49         ` Frank Rowand

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=54497AB8.10609@landley.net \
    --to=rob@landley.net \
    --cc=Tim.Bird@sonymobile.com \
    --cc=alexandre.belloni@free-electrons.com \
    --cc=bp@alien8.de \
    --cc=challinan@gmail.com \
    --cc=dirk.behme@gmail.com \
    --cc=geert@linux-m68k.org \
    --cc=grant.likely@secretlab.ca \
    --cc=linux-embedded@vger.kernel.org \
    --cc=nico@fluxnic.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.