From: Andres Salomon Date: Mon, 29 Nov 2010 23:39:51 +0000 (+0000) Subject: x86, olpc: Speed up device tree creation during boot X-Git-Tag: v2.6.38-rc1~243^2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b5318d302f8a20eacbbfc01b0ee35b108085a363;p=pandora-kernel.git 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 LKML-Reference: <20101129153951.74202a84@queued.net> Signed-off-by: H. Peter Anvin --- Reading git-diff-tree failed