public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC] ELF Relocatable x86 and x86_64 bzImages
@ 2006-08-01 10:58 Eric W. Biederman
  2006-08-01 11:03 ` [PATCH 1/33] i386: vmlinux.lds.S Distinguish absolute symbols Eric W. Biederman
                   ` (37 more replies)
  0 siblings, 38 replies; 105+ messages in thread
From: Eric W. Biederman @ 2006-08-01 10:58 UTC (permalink / raw)
  To: fastboot
  Cc: linux-kernel, Horms, Jan Kratochvil, H. Peter Anvin, Magnus Damm,
	Vivek Goyal, Linda Wang


The problem:

We can't always run the kernel at 1MB or 2MB, and so people who need
different addresses must build multiple kernels.  The bzImage format
can't even represent loading a kernel at other than it's default address.
With kexec on panic now starting to be used by distros having a kernel
not running at the default load address is starting to become common.

The goal of this patch series is to build kernels that are relocatable
at run time, and to extend the bzImage format to make it capable of
expressing a relocatable kernel.

In extending the bzImage format I am replacing the existing unused bootsector
with an ELF header.  To express what is going on the ELF header will
have type ET_DYN.  Just like the kernel loading an ET_DYN executable
bootloaders are not expected to process relocations.  But the executable
may be shifted in the address space so long as it's alignment requirements
are met.

The x86_64 kernel is simply built to live at a fixed virtual address
and the boot page tables are relocated.  The i386 kernel is built
to process relocations generated with --embedded-relocs (after vmlinux.lds.S)
has been fixed up to sort out static and dynamic relocations.

Currently there are 33 patches in my tree to do this.

The weirdest symptom I have had so far is that page faults did not
trigger the early exception handler on x86_64 (instead I got a reboot).

There is one outstanding issue where I am probably requiring too much alignment
on the arch/i386 kernel.  

Can anyone find anything else?

Eric

^ permalink raw reply	[flat|nested] 105+ messages in thread

end of thread, other threads:[~2006-11-05  7:16 UTC | newest]

Thread overview: 105+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-01 10:58 [RFC] ELF Relocatable x86 and x86_64 bzImages Eric W. Biederman
2006-08-01 11:03 ` [PATCH 1/33] i386: vmlinux.lds.S Distinguish absolute symbols Eric W. Biederman
2006-08-01 19:06   ` Sam Ravnborg
2006-08-01 11:03 ` [PATCH 2/33] i386: define __pa_symbol Eric W. Biederman
2006-08-01 19:06   ` Andi Kleen
2006-08-02  2:19     ` Eric W. Biederman
2006-08-02  3:04       ` Andi Kleen
2006-08-01 11:03 ` [PATCH 3/33] i386 setup.c: Reserve kernel memory starting from _text Eric W. Biederman
2006-08-01 11:03 ` [PATCH 4/33] i386: CONFIG_PHYSICAL_START cleanup Eric W. Biederman
2006-08-01 19:08   ` Sam Ravnborg
2006-08-02  2:23     ` Eric W. Biederman
2006-08-02 16:14     ` Eric W. Biederman
2006-08-03 14:05       ` Sam Ravnborg
2006-08-01 11:03 ` [PATCH 5/33] i386 Kconfig: Add a range definition to config PHYSICAL_START Eric W. Biederman
2006-08-01 11:03 ` [PATCH 6/33] Make linux/elf.h safe to be included in assembly files Eric W. Biederman
2006-08-01 11:03 ` [PATCH 7/33] elf: Add ELFOSABI_STANDALONE to elf.h Eric W. Biederman
2006-08-01 11:03 ` [PATCH 8/33] kallsyms.c: Generate relocatable symbols Eric W. Biederman
2006-08-01 11:36   ` Paulo Marques
2006-08-01 11:52     ` Eric W. Biederman
2006-08-01 11:03 ` [PATCH 9/33] i386 boot: Add serial output support to the decompressor Eric W. Biederman
2006-08-01 19:19   ` Andi Kleen
2006-08-02  2:30     ` Eric W. Biederman
2006-08-02  3:07       ` Andi Kleen
2006-08-02  4:57         ` Eric W. Biederman
2006-08-02  5:21           ` Andi Kleen
2006-08-02  6:44             ` Eric W. Biederman
2006-08-02  3:06     ` Eric W. Biederman
2006-08-02  3:10       ` Andi Kleen
2006-08-02  5:27         ` Eric W. Biederman
2006-08-02  5:44           ` Andi Kleen
2006-08-02  7:14             ` Eric W. Biederman
2006-08-01 11:03 ` [PATCH 10/33] i386: Relocatable kernel support Eric W. Biederman
2006-08-01 13:34   ` Mika Penttilä
2006-08-01 18:07     ` Eric W. Biederman
2006-08-01 18:11       ` Sam Ravnborg
2006-08-01 18:16       ` Mika Penttilä
2006-08-01 11:03 ` [PATCH 11/33] i386 boot: Add an ELF header to bzImage Eric W. Biederman
2006-08-01 22:10   ` Jeremy Fitzhardinge
2006-08-02  2:38     ` Eric W. Biederman
2006-08-01 11:03 ` [PATCH 12/33] x86_64: fixup indentation in e820.c Eric W. Biederman
2006-08-01 11:03 ` [PATCH 13/33] x86_64: Remove assumptions about the kernel start address from e820/bad_addr() Eric W. Biederman
2006-08-01 11:03 ` [PATCH 14/33] x86_64: Properly report in /proc/iomem the kernel address Eric W. Biederman
2006-08-01 11:03 ` [PATCH 15/33] x86_64: Fix kernel direct mapping size check Eric W. Biederman
2006-08-01 11:03 ` [PATCH 16/33] x86_64: Assembly safe page.h and pgtable.h Eric W. Biederman
2006-08-01 11:03 ` [PATCH 17/33] x86_64: Separate normal memory map initialization from the hotplug case Eric W. Biederman
2006-08-01 11:03 ` [PATCH 18/33] x86_64: Kill temp_boot_pmds Eric W. Biederman
2006-08-01 19:02   ` Andi Kleen
2006-08-02  2:08     ` Eric W. Biederman
2006-08-01 19:04   ` [PATCH 18/33] x86_64: Kill temp_boot_pmds II Andi Kleen
2006-08-02  2:11     ` Eric W. Biederman
2006-08-02  3:07       ` Andi Kleen
2006-08-02  5:35         ` Eric W. Biederman
2006-08-01 11:03 ` [PATCH 19/33] x86_64: Cleanup the early boot page table Eric W. Biederman
2006-08-01 11:03 ` [PATCH 20/33] x86_64: fix early_printk to use the standard ISA mapping Eric W. Biederman
2006-08-01 11:03 ` [PATCH 21/33] x86_64: modify copy_bootdata to use virtual addresses Eric W. Biederman
2006-08-01 11:03 ` [PATCH 22/33] x86_64: Fix gdt table size in trampoline.S Eric W. Biederman
2006-08-01 18:59   ` Andi Kleen
2006-08-01 11:03 ` [PATCH 23/33] x86_64: cleanup segments Eric W. Biederman
2006-08-01 11:03 ` [PATCH 24/33] x86_64: Add EFER to the set registers saved by save_processor_state Eric W. Biederman
2006-08-01 11:03 ` [PATCH 25/33] x86_64: 64bit PIC SMP trampoline Eric W. Biederman
2006-08-01 19:13   ` Andi Kleen
2006-08-01 11:03 ` [PATCH 26/33] x86_64: 64bit PIC ACPI wakeup Eric W. Biederman
2006-08-01 19:10   ` Andi Kleen
2006-08-01 11:03 ` [PATCH 27/33] x86_64: Modify discover_ebda to use virtual addresses Eric W. Biederman
2006-08-01 11:03 ` [PATCH 28/33] x86_64: Remove the identity mapping as early as possible Eric W. Biederman
2006-08-01 19:15   ` Andi Kleen
2006-08-01 11:03 ` [PATCH 29/33] x86_64: __pa and __pa_symbol address space separation Eric W. Biederman
2006-08-01 11:03 ` [PATCH 30/33] x86_64: Remove CONFIG_PHYSICAL_START Eric W. Biederman
2006-08-01 11:03 ` [PATCH 31/33] x86_64 boot: Add serial output support to the decompressor Eric W. Biederman
2006-08-01 11:03 ` [PATCH 32/33] x86_64: Relocatable kernel support Eric W. Biederman
2006-08-01 19:11   ` Andi Kleen
2006-08-02  2:25     ` Eric W. Biederman
2006-11-05  6:02       ` Yinghai Lu
2006-11-05  6:52         ` Eric W. Biederman
2006-11-05  7:15           ` Yinghai Lu
2006-08-01 11:03 ` [PATCH 33/33] x86_64: Make bzImage a valid 64bit elf executable Eric W. Biederman
2006-08-01 19:26 ` [RFC] ELF Relocatable x86 and x86_64 bzImages Vivek Goyal
2006-08-01 20:13   ` Jan Kratochvil
2006-08-01 20:25   ` H. Peter Anvin
2006-08-02  2:02     ` Eric W. Biederman
2006-08-01 20:40 ` Vivek Goyal
2006-08-02  2:40   ` Eric W. Biederman
2006-08-02  6:34 ` Magnus Damm
2006-08-02  7:09   ` Eric W. Biederman
2006-08-02  8:34     ` Magnus Damm
2006-08-02  9:59       ` Eric W. Biederman
2006-08-02 18:37 ` [Fastboot] " Don Zickus
2006-08-03  1:00   ` Eric W. Biederman
2006-08-03  4:53     ` H. Peter Anvin
2006-08-04 22:56 ` Vivek Goyal
2006-08-04 23:14   ` Eric W. Biederman
2006-08-04 23:38     ` Dave Jones
2006-08-04 23:47       ` H. Peter Anvin
2006-08-05  8:01         ` Eric W. Biederman
2006-08-08  3:34     ` Horms
2006-08-08  4:32       ` H. Peter Anvin
2006-08-08  4:57         ` Magnus Damm
2006-08-08  5:04         ` Eric W. Biederman
2006-08-08  6:09         ` Horms
2006-08-08  7:23           ` Eric W. Biederman
2006-08-08  7:58             ` Horms
2006-08-09 14:56               ` D. Hazelton
2006-08-17 18:44             ` Vivek Goyal
2006-08-11 13:11   ` [Fastboot] " Rachita Kothiyal
2006-08-11 13:36     ` Vivek Goyal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox