Kernel Start-up Time
Caglar Akyuz
caglarakyuz at gmail.com
Tue Jan 19 03:36:21 EST 2010
On Monday 18 January 2010 05:39:03 pm Steve Chen wrote:
> On Mon, 2010-01-18 at 10:54 +0200, Caglar Akyuz wrote:
> > On Monday 18 January 2010 10:39:27 am Tonyliu wrote:
> > > Caglar Akyuz wrote:
> > > > Hello,
> > > >
> > > > While measuring Linux start-up time, I see that printing version
> > > > string in "start_kernel" takes ~1.3 seconds. I guess this is the time
> > > > between from "bootloader jumping to uImage" and "printing version
> > > > string in generic start_kernel code". Relevant part of my boot log is
> > > > attached.
> > > >
> > > > My question: is it normal this 1.3 sec init time? My system is 297
> > > > MHZ arm926ej-s with a 162MHZ DDR2 memory.
> > >
> > > It depends on where you start to measure it?
> > > Starting from when power is turned on.
> > > Starting from when the first instruction executes.
> > > Start from the bootloader tries to load the kernel image.
> > > ...
> >
> > That number is relative, it is the time passing from u-boot jumping to
> > kernel and kernel starting.
> >
> > > I think this type of mearsurement makes no much sense to you, since
> > > normally
> > > people want to know
> > > When the kernel loads userspace or
> > > When the first app starts to run.
> >
> > First application starts in ~4 second. This time consists of:
> >
> > 1) ~1 sec for application start.
> > 2) ~1 sec for userspace init, mouting filesys, etc.
> > 3) ~1 sec for kernel init for drivers and machine specific code
> > 4) ~1 sec for the aforementioned delay.
> >
> > > These are more meaningful for specific product.
> >
> > It is number 4 that I'm trying to understand. I think it has the highest
> > chance to contribute to end goal. But if it is as expected, then no room
> > for optimization there.
>
> Well, "no room for optimization" is a pretty strong statement. Last
> year Monta Vista demo the 1 second boot.
>
What I'm looking for is whether early arm boot sequence is 1.3 secs or not. I
may be wrong but my guess is before jumping to generic "start_kernel" function
following files are executed:
* arch/arm/kernel/head.S
* arch/arm/kernel/head-common.S
* arch/arm/mm/proc-arm926.S
And these 3 files cost me 1.3 seconds. Initializing page tables, caches etc
costing that much doesn't seem optimal to me. This is what I'm trying to find
out.
> http://mvista.com/press_release_detail.php?fid=news/2009/Ultra-fast-boot.ht
> ml&d=
>
This was an excellent paper and I stole all relevant parts from that paper. In
addition to that I followed Tim Bird's excellent articles, Blackfin's articles
related to 1 second boot. However, none of them references any boot delays
related to this. They just do not spend this much time in their arch specific
early boot.
Best regards,
Caglar
> I realized that it is a different and faster processor, but I'm pretty
> sure there are plenty of places you can trim the boot time. It is a
> matter of time and effort. You may want to start with the system
> requirement to see if 4 seconds is good enough and go from there.
>
> Regards,
>
> Steve
>
More information about the linux-arm-kernel
mailing list