Re: [PATCHv3 1/3] x86: use ELF format in compressed images.

From: H. Peter Anvin
Date: Sun Apr 06 2008 - 13:30:43 EST


Yinghai Lu wrote:
On Sun, Apr 6, 2008 at 9:38 AM, H. Peter Anvin <hpa@xxxxxxxxx> wrote:
Yinghai Lu wrote:

so will cost every bzImage extra memory copy? that could be 18M or
even more big.

I wouldn't worry about that. You will typically have several copies of the
images during the execution of the boot loader.

i put all drivers needed in kernel.
1. bootloader copy bzImage (6M) to memory
2. arch/x86/boot/compressed/head_32.S, will copy bzImage to end of
buffer to do uncompress on possiton.
3. parse_elf will copy the vmlinux (the uncompressed, that is some big, 18M)

I suggest that could have special elf header, and will only have one
PT_LOAD, and avoid the copy, and just offset start address of
uncompressed kernel for jump later.

Once again, I think you will have a hard time measuring the time difference.

The start address of the uncompressed kernel is defined at compile time. Typically it is set based on alignment constraints in the hardware; for x86-32 is is normally 1 MB but for reasonably large hardware 16 MB is better (in fact, I have proposed making 16 MB the default.) Recovery kernels are frequently compiled with completely different addresses.

With your proposal, this would no longer be possible to be a configurable option, which would be a major loss -- a major loss of functionality for a small fraction of time at bootup time (which is almost certainly dwarfed by all the other copying and initialization that happens at boot time.)

-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/