In fact, I also doubt about if it is necessary, and I tested the result of successful boot(about 50% chance...) with my old T41(PM1.6G). The original version run initcall take about only 4 seconds, and modified version(with all kinds of problems) also takes about 2 seconds -- even if it works very well, only 4 seconds was saved but a single line code would be extended to dozens or hundreds...
Greg's word remind me of that linux should be practical, and this method seems neither practical or simple. I will discuss it with my mentor several days later - for this week is Golden Week Holiday(Labor Day) in China...
Thank Pradeep for show me the Upstart!
But, um... I feel a little sorry... Tell the truth, the motive of writing this patch is I asked my mentor for something practical as the entrance to kernel development, and he got me this idea. Before writing this patch, I am only reading book, don't have realistic target...
Now, as you say, the real problem is out of kernel issue, so I may not continue with it. I checked Upstart, it seems good and I will try it later, but may not focus on it...
Anyway, thank you very much!
I may turn to my mentor for finding another thing I can start with. :-)
Thanks.
> >
> > Thanks for the notice!
> >
> > I am a new kernel developer(also a kernel newbie :-) ) and working on a
> > multi-threaded initcall patch in order to speed up the boot stage now. This
> > idea provided by my mentor.
>
> I don't think it will really speed up things, boot is still limited by
> I/O speed, not kernel startup execution speed. I implemented
> multi-threaded device probing (which caused all sorts of problems and
> had to be ripped out in the end), and it only caused a very small
> increase in speed.
>
> To speed up boot time, you need to attack the issues _after_ init starts
> up, not before.
Yes, may be Yang Upstart is something you are looking for?
yes/no?
It is basically event based booting after init i guess but that is out
of the kernel issue i hope. here is the link upstart.ubuntu.com .
please CMIIW.
Thanks
~psr
>
> > The basic idea is using kthread with initcall and register a
> > wait_for_initcall() with xxx_initcall_sync() which introduced by Andrew
> > Morton for multi-threaded probing <http://lkml.org/lkml/2006/10/27/157> used
> > as barrier for each level.
> >
> > I supposed the initcalls in same level can be run in parallel. I know this
> > maybe not true, but I wrote this patch and tried.
>
> It is not true, there are a lot of dependencies on the link order of
> these initcalls. You will run into troubles.
>
> Good luck,
>
> greg k-h
>
> --
> To unsubscribe from this list: send an email with
> "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
> Please read the FAQ at http://kernelnewbies.org/FAQ
>
>
--
play the game
--
regards,
Yang, Sheng