Reducing Cold Boot Times


whynodd

Member
Joined
Sep 20, 2008
Messages
262
Booting Omap3530-Device under 1sec: Video
Booting MS7724 devboard 1sec: Video
The slides

Maybe some of these techniques are helpful for the kernel hackers here. I did not understand everything, I just thought I should post it here.
 
Note that usually in these things <1sec, they're _not booting an OS_; booting a stripped kernel (that offers few services, just exactly what is needed and no more) and no window manager or desktop or anything else is much easier than what we're doing; we're booting up lots of stuff, so that you can run full linux applications.

There is some interest in 'more stripped' versions of both xfce and minimenu environments (and others of course), and even 'boot straight to minimenu with no extra services'; I did have that last option going for awhile .. boot straight to mm in about 10-15 seconds or something I think it was which was pretty awesome, and could even run some other apps nicely .. but it was limited in the sense of running X (full windowed GUI) apps, which is something a lot of people like. So our default minimenu environment is stripped in UI terms and is a little faster to boot, but we didn't want to also limit user functionality; if you want ot strip out X you can shave off a fair amount of time pretty easily, but half the pnds will suddenly eithe not work or take a long time ot start up (depending).

No time to write up full details now, but hopefully you get my drift -- in Quickboot an dSwiftboot and so on, theyu're just booting straight to a specific app, nothing else. Thats ikpressive how fast they do it, but stil l its cheating :)

jeff
 
It's known there are lots of techniques we can use to get it down to 10 or 20 seconds, but sub-second? Something suspicious going on here. At a (very) brief glance, they're not starting a full desktop environment the way we are, nor do they seem to have the 3D driver, which is just a binary blob that needs to be loaded normally and can't be done with any tricks: those two things alone add on 15 seconds or so at least.

edit: :ph34r: what Jeff said
 
You remeber teh trick Microsoft pulled with WinXP (AFAIR)?
They laoded only the stuff which is needed for the login screen. And while oyu are in the login screen it loaded the rest.
Yeah we all hate them for that :)

However, if someone is dedicated enough, it should be possible to do something similar. I mean, in the time you are selecting the game/app in minimenu (let it take 6 seconds) the rest can be loaded.
 
Creature XL said:
You remeber teh trick Microsoft pulled with WinXP (AFAIR)?
They laoded only the stuff which is needed for the login screen. And while oyu are in the login screen it loaded the rest.
Yeah we all hate them for that :)

However, if someone is dedicated enough, it should be possible to do something similar. I mean, in the time you are selecting the game/app in minimenu (let it take 6 seconds) the rest can be loaded.

Well, the X Server takes about 10 seconds to load, so no login under 10 seconds.
The rest can be optimized using upstart, e.g.
 
Last edited:
EvilDragon said:
Creature XL said:
You remeber teh trick Microsoft pulled with WinXP (AFAIR)?
They laoded only the stuff which is needed for the login screen. And while oyu are in the login screen it loaded the rest.
Yeah we all hate them for that :)

However, if someone is dedicated enough, it should be possible to do something similar. I mean, in the time you are selecting the game/app in minimenu (let it take 6 seconds) the rest can be loaded.

Well, the X Server takes about 10 seconds to load, so no login under 10 seconds.
The rest can be optimized using upstart, e.g.


Well, about that major system update that might be only a few months away, would that include a recent Xorg? It starts pretty quickly on my workstation nowadays (faster than my LCD screen can change resolution, at least.) So it should be possible to get some improvement there?
 
Last edited by a moderator:
I thought the intended behaviour was to not turn of the Pandora but rather suspend it. In my opinion development effort is better spent in optimizing the sleep mode instead. Optimizing a cold boot is nice, but not at the expense of general usability (what these projects typically do).
 
slaeshjag said:
Well, the X Server takes about 10 seconds to load, so no login under 10 seconds.
The rest can be optimized using upstart, e.g.
Well, about that major system update that might be only a few months away, would that include a recent Xorg? It starts pretty quickly on my workstation nowadays (faster than my LCD screen can change resolution, at least.) So it should be possible to get some improvement there?

AFAIK, we're not too far behind. AFAIR the Pandora uses xorg 1.8... and... erm... what workstation?
You're not trying to compare a decent PC running from a fast harddisk with really fast RAM to a 600MHz ARM CPU booting from a NAND, are you?
 
Last edited:
EvilDragon said:
slaeshjag said:
Well, the X Server takes about 10 seconds to load, so no login under 10 seconds.
The rest can be optimized using upstart, e.g.
Well, about that major system update that might be only a few months away, would that include a recent Xorg? It starts pretty quickly on my workstation nowadays (faster than my LCD screen can change resolution, at least.) So it should be possible to get some improvement there?

AFAIK, we're not too far behind. AFAIR the Pandora uses xorg 1.8... and... erm... what workstation?
You're not trying to compare a decent PC running from a fast harddisk with really fast RAM to a 600MHz ARM CPU booting from a NAND, are you?

I'm comparing it with itself, a earlier version took seconds.
 
Last edited by a moderator:
Lol.

They're using NOR flash, the same stuff that's used in reprogrammable GBA flash carts.

It's unfair to compare the Pandora loading >1000 services + a full X Windows server with something loading a very stripped kernel with maybe 10 services and an application probably writing right to the framebuffer - FROM MEMORY THAT ALMOST REQUIRES NO WAIT CYCLES.

NOR memory = frickin fast! to read, but sloooooooow to write - you have to treat it as ROM, not as a place for your docs, etc.

Linux is huge. If you want fast boot times, um. Well. Write a Pandora specific OS in pure thumb ASM because there isn't any usable OS that can load from NAND in that timeframe. Speaking of that, any pointers to osdev info for the Pandora? I've read the processor manual but naturally that doesn't really give info on where the screen data is, etc etc.

Or, just replace X. X is huuuuuge, buggy, slow(because it's network oriented, a good feature but useless for most people) and pretty insecure.

Or, use something lighter than Xfce. I've done this (on my computer, i'm pandoraless), but I went back to Xfce because it was just so awesome. The speed difference was fairly unnoticable but again Xfce ran without issues :p.

Better, just either drop X and login from console, and work from a tty. Downside, there aren't any games comparable to the fast paced stuff we play now(except for those using fbdev, via sdl or otherwise), but the plus is that it's fast!
Anyway plus side is, with what we are doing, we're loading something with megatons of awesome features, they're drawing a few buttons and some video on screen. Meh.

Oh, this isn't a flame, nor is it a "Get real n00bz0r" post.
 
Back
Top