linux/arch/x86/platform
Andres Salomon b5318d302f x86, olpc: Speed up device tree creation during boot
Calling alloc_bootmem() for tiny chunks of memory over and over is really
slow; on an XO-1, it caused the time between when the kernel started
booting and when the display came alive (post-lxfb probe) to increase
to 44s.  This patch optimizes the prom_early_alloc function by
calling alloc_bootmem for 4k-sized blocks of memory, and handing out
chunks of that to callers.  With this patch, the time between kernel load
and display initialization decreased to 23s.  If there's a better way to
do this early in the boot process, please let me know.

(Note: increasing the chunk size to 16k didn't noticably affect boot time,
and wasted 9k.)

v4: clarify comment, requested by hpa
v3: fix wasted memory buglet found by Milton Miller, and style fix.
v2: reorder prom_early_alloc as suggested by Grant.

Signed-off-by: Andres Salomon <dilinger@queued.net>
LKML-Reference: <20101129153951.74202a84@queued.net>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
2010-12-15 17:11:40 -08:00
..
efi x86: Move efi to platform 2010-10-27 14:30:01 +02:00
mrst x86: Move mrst to platform 2010-10-27 14:30:01 +02:00
olpc x86, olpc: Speed up device tree creation during boot 2010-12-15 17:11:40 -08:00
scx200 x86: Move scx200 to platform 2010-10-27 14:30:01 +02:00
sfi x86: Move sfi to platform 2010-10-27 14:30:01 +02:00
uv x86: UV: Address interrupt/IO port operation conflict 2010-11-18 10:41:25 +01:00
visws x86: Move visws to platform 2010-10-27 14:30:01 +02:00
Makefile x86: Move olpc to platform 2010-10-27 17:22:16 +02:00