Messages in this thread | | | Subject | Re: [PATCH 04/14] init: deps: order network interfaces by link order | From | Alexander Holler <> | Date | Mon, 19 Oct 2015 12:57:51 +0200 |
| |
Am 18.10.2015 um 12:11 schrieb Alexander Holler: > Am 18.10.2015 um 07:59 schrieb Greg Kroah-Hartman: >> On Sun, Oct 18, 2015 at 07:20:34AM +0200, Alexander Holler wrote: >>> Am 18.10.2015 um 07:14 schrieb Greg Kroah-Hartman: >>>> On Sun, Oct 18, 2015 at 06:59:22AM +0200, Alexander Holler wrote: >>>>> Am 17.10.2015 um 21:36 schrieb Greg Kroah-Hartman: >>>>> >>>>>> Again, parallelizing does not solve anything, and causes more >>>>>> problems >>>>>> _and_ makes things take longer. Try it, we have done it in the >>>>>> past and >>>>>> proven this, it's pretty easy to test :) >>>>> >>>>> Just because I'm curious, may I ask how I would test that in the >>>>> easy way >>>>> you have in mind? I've just posted the results of my tests (the patch >>>>> series) but I wonder what you do have in mind. >>>> >>>> Use the tool, scripts/bootgraph.pl to create a boot graph of your boot >>>> sequence. That should show you the drivers, or other areas, that are >>>> causing your boot to be "slow". >>> >>> So I've misunderstood you. I've read your paragraph as that it's easy to >>> test parallelizing. >> >> Ah, ok, if you want to parallelize everything, add some logic in the >> driver core where the probe() callback is made to spin that off into a >> new thread for every call, and when it's done, clean up the thread. >> That's what I did many years ago to try this all out, if you dig in the >> lkml archives there's probably a patch somewhere that you can base the >> work off of to test it yourself. > > Hmm, I don't think I will do that because that means to setup a new > thread for every call. And it doesn't need much imagination (or > experience) that this introduces quite some overhead. > > But maybe it makes sense to try out what I'm doing in my patches, > starting multiple threads once and then just giving them some work. Will
After a having second thought on your simple approach to parallelize stuff, I have to say that it just can't work because just starting a thread for every probe() totally ignores possible dependencies. Regardless if using one thread per probe() call or if feeding probe() calls to just a few threads.
Maybe that's why previous attempts to parallelize stuff failed. But that's just an assumption as I'm unaware of these previous attempts.
Regards,
Alexander Holler
| |