From: grant.likely@secretlab.ca (Grant Likely)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH v3] drivercore: Add driver probe deferral mechanism
Date: Fri, 23 Sep 2011 17:18:08 -0600 [thread overview]
Message-ID: <20110923231808.GF24631@ponder.secretlab.ca> (raw)
In-Reply-To: <7790.1316800223@turing-police.cc.vt.edu>
On Fri, Sep 23, 2011 at 01:50:23PM -0400, Valdis.Kletnieks at vt.edu wrote:
> On Thu, 22 Sep 2011 15:19:01 MDT, Grant Likely said:
> > On Thu, Sep 22, 2011 at 2:29 PM, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> > > Definitely what is needed for some of the x86 SoC stuff and would let us
> > > rip out some of the special case magic for the SCU discovery.
> > >
> > > First thing that strikes me is driver_bound kicks the processing queue
> > > again. That seems odd - surely this isn't needed because any driver that
> > > does initialise this time and may allow something else to get going will
> > > queue the kick itself. Thus this seems to just add overhead.
> > >
> > > It all looks a bit O(N?) if we don't expect the drivers that might
> > > trigger something else binding to just say 'hey I'm one of the
> > > troublemakers'
> >
> > The way I read it, absolute worst case is when every device but one
> > depends on another device. In that case I believe it will be
> > O(Nlog(N)). (Every device gets probed on the first pass, but only the
> > last one gets probed. Then it goes through N-1 devices to the result
> > of only 1 more device getting probed, then N-2, etc.).
>
> That is indeed O(N**2) not Nlog(N). The total number of probes is (N+1)(N)/2
> To get it to O(Nlog(N)), you'd have to probe N devices the first pass, N/2 devices
> on the second pass, N/4 on the third, and so on.
>
Ah, indeed, you are correct. It's been too long since my engineering
CS class.
Still, I'm not even remotely worried about this algorithm for the
kernel. The complexity is bounded by the number of levels of
dependencies, not the number of devices requesting deferral. I'd be
very surprised if the nested dependencies ever get to half a dozen.
Note: these are only dependencies outside of the existing
parent-child dependencies in the Linux device model, which further
reduces the number of sources of nesting.
g.
next prev parent reply other threads:[~2011-09-23 23:18 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-22 18:51 [RFC PATCH v3] drivercore: Add driver probe deferral mechanism Grant Likely
2011-09-22 18:58 ` Joe Perches
2011-09-22 20:29 ` Alan Cox
2011-09-22 21:19 ` Grant Likely
2011-09-23 17:50 ` Valdis.Kletnieks at vt.edu
2011-09-23 23:18 ` Grant Likely [this message]
[not found] ` <4E7BA661.7070903@cavium.com>
2011-09-22 22:47 ` Alan Cox
2011-09-23 5:02 ` Grant Likely
2011-09-23 16:55 ` David Daney
2011-09-26 14:16 ` Mark Brown
2011-09-26 15:12 ` Russell King - ARM Linux
2011-09-26 15:26 ` Mark Brown
2011-09-26 15:48 ` Grant Likely
2011-09-27 13:50 ` Arnd Bergmann
2011-09-27 21:08 ` Grant Likely
2011-09-27 22:13 ` Mark Brown
2011-09-28 13:04 ` Arnd Bergmann
2011-09-28 13:20 ` Mark Brown
2011-09-28 23:14 ` Grant Likely
2011-09-29 11:00 ` Mark Brown
2011-10-03 23:02 ` Kevin Hilman
2011-10-04 15:52 ` Grant Likely
2011-10-04 14:51 ` G, Manjunath Kondaiah
2011-10-04 15:58 ` Grant Likely
2011-10-04 18:35 ` G, Manjunath Kondaiah
2011-10-04 23:35 ` Grant Likely
2011-10-07 3:31 ` G, Manjunath Kondaiah
2011-10-11 20:47 ` Andrew Morton
[not found] ` <4E94B01D.2050402@cavium.com>
2011-10-13 4:19 ` Grant Likely
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=20110923231808.GF24631@ponder.secretlab.ca \
--to=grant.likely@secretlab.ca \
--cc=linux-arm-kernel@lists.infradead.org \
/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).