From: Vivek Goyal <vgoyal@in.ibm.com>
To: linux kernel mailing list <linux-kernel@vger.kernel.org>
Cc: Reloc Kernel List <fastboot@lists.osdl.org>,
ebiederm@xmission.com, akpm@osdl.org, ak@suse.de,
horms@verge.net.au, lace@jankratochvil.net, hpa@zytor.com,
magnus.damm@gmail.com, lwang@redhat.com, dzickus@redhat.com,
maneesh@in.ibm.com
Subject: [RFC][PATCH 0/12] ELF Relocatable x86 bzImage (V2)
Date: Tue, 3 Oct 2006 13:00:32 -0400 [thread overview]
Message-ID: <20061003170032.GA30036@in.ibm.com> (raw)
Hi,
Eric biederman implemented the relocatable kernel support for x86 and x86_64
and posted the patches for comments almost two months back.
http://marc.theaimsgroup.com/?l=linux-kernel&m=115443019026302&w=2
We have been testing the patches in RHEL kernels since then and things are
looking up. I think this is the time that patches can be included in -mm
and get more testing done and get rest of the issues sorted out.
Eric is currently held up with other things, so I have taken his patches
and forward ported to 2.6.18-git19. Did some minor cleanups and fixed a
couple of bugs as faced in our testing. I have also accomodated the review
comments received last time.
Currently this patch series is only for i386. I will be posting the patches
for x86_64 later.
Following is a brief account of changes I have done since last time.
o Forward ported the patches to 2.6.18-git19
o Replaced CONFIG_PHYSICAL_START with CONFIG_PHYSICAL_ALIGN
o Added a patch to prevent section relative symbols becoming absolute
for sections with zero size.
o Dropped support for serial output debugging in decompressor code for
the time being as per the discussion last time.
o Added symbol _text to few architectures so that compilation does not break
o Fix a typo in config option (CONFIG_RELOCTABLE). It was causing wrong pice
of code to be executed and second kernel was stomping over first kernel's
data.
o Modified __pa_symbol() definition as per Andi's comment.
o Put --emit-relocs undef #ifdef, so that relocation sections are not
retained of CONFIG_RELOCATABLE is not set.
o Made symbol _end_rodata also section relative.
o Align .data section to 4K address otherwise data segment is loaded at
a non-4K aligned boundary and kexec-tools do the check.
Following is the text from Eric's last post to refresh memory that
why do we need a relocatable kernel.
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 i386 kernel is built to process relocations generated with --emit-relocs
(after vmlinux.lds.S) has been fixed up to sort out static and dynamic
relocations.
Thanks
Vivek
next reply other threads:[~2006-10-03 17:32 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-03 17:00 Vivek Goyal [this message]
2006-10-03 17:04 ` [PATCH 1/12] i386: Distinguish absolute symbols Vivek Goyal
2006-10-07 6:35 ` Andrew Morton
2006-10-08 16:47 ` Vivek Goyal
2006-10-09 7:35 ` Gerd Hoffmann
2006-10-09 13:49 ` Vivek Goyal
2006-10-03 17:06 ` [PATCH 2/12] i386: align data section to 4K boundary Vivek Goyal
2006-10-04 11:17 ` Andi Kleen
2006-10-04 15:18 ` H. Peter Anvin
2006-10-03 17:09 ` [PATCH 3/12] i386: Force section size to be non-zero to prevent a symbol becoming absolute Vivek Goyal
2006-10-04 11:02 ` Andi Kleen
2006-10-04 14:07 ` Eric W. Biederman
2006-10-04 14:45 ` Vivek Goyal
2006-10-04 16:09 ` Andrew Morton
2006-10-04 16:14 ` Vivek Goyal
2006-10-03 17:10 ` [PATCH 4/12] i386: define __pa_symbol() Vivek Goyal
2006-10-04 8:26 ` Franck Bui-Huu
2006-10-04 19:44 ` Vivek Goyal
2006-10-06 13:10 ` Franck Bui-Huu
2006-10-06 18:33 ` Vivek Goyal
2006-10-03 17:12 ` [PATCH 5/12] i386 setup.c: Reserve kernel memory starting from _text Vivek Goyal
2006-10-03 17:15 ` [PATCH 6/12] i386: CONFIG_PHYSICAL_START cleanup Vivek Goyal
2006-10-03 18:45 ` Dave Hansen
2006-10-03 18:52 ` Vivek Goyal
2006-10-03 18:59 ` Eric W. Biederman
2006-10-03 19:35 ` Vivek Goyal
2006-10-03 17:17 ` [PATCH 7/12] Make linux/elf.h safe to be included in assembly files Vivek Goyal
2006-10-03 17:19 ` [PATCH 8/12] elf: Add ELFOSABI_STANDALONE to elf.h Vivek Goyal
2006-10-03 17:21 ` [PATCH 9/12] kallsyms: Generate relocatable symbols Vivek Goyal
2006-10-03 17:22 ` [PATCH 10/12] i386: Relocatable kernel support Vivek Goyal
2006-10-03 17:24 ` [PATCH 11/12] i386: Implement CONFIG_PHYSICAL_ALIGN Vivek Goyal
2006-10-03 17:25 ` [PATCH 12/12] i386 boot: Add an ELF header to bzImage Vivek Goyal
2006-10-04 3:13 ` Andrew Morton
2006-10-04 4:28 ` Vivek Goyal
2006-10-04 4:40 ` H. Peter Anvin
2006-10-04 8:04 ` Eric W. Biederman
2006-10-04 15:18 ` H. Peter Anvin
2006-10-05 4:12 ` Eric W. Biederman
2006-10-05 4:17 ` H. Peter Anvin
2006-10-04 20:22 ` Vivek Goyal
2006-10-04 20:27 ` H. Peter Anvin
2006-10-04 20:48 ` Vivek Goyal
2006-10-04 20:52 ` H. Peter Anvin
2006-10-04 21:06 ` Vivek Goyal
2006-10-04 21:09 ` H. Peter Anvin
2006-10-04 5:37 ` Andrew Morton
2006-10-05 4:06 ` Eric W. Biederman
2006-10-05 4:12 ` H. Peter Anvin
2006-10-05 4:44 ` Andrew Morton
2006-10-05 6:13 ` Eric W. Biederman
2006-10-05 6:31 ` Andrew Morton
2006-10-05 6:48 ` Eric W. Biederman
2006-10-05 21:54 ` Vivek Goyal
2006-10-05 15:25 ` H. Peter Anvin
2006-10-05 15:35 ` Eric W. Biederman
2006-10-05 15:29 ` Eric W. Biederman
2006-10-05 15:44 ` H. Peter Anvin
2006-10-06 6:59 ` Andrew Morton
2006-10-06 12:56 ` Eric W. Biederman
2006-10-06 18:38 ` Vivek Goyal
2006-10-06 18:54 ` H. Peter Anvin
2006-10-06 19:09 ` Eric W. Biederman
2006-10-06 21:54 ` H. Peter Anvin
2006-10-09 14:33 ` Vivek Goyal
2006-10-10 3:14 ` Andrew Morton
2006-10-10 4:51 ` Eric W. Biederman
2006-10-10 14:30 ` Vivek Goyal
2006-10-10 18:46 ` Andrew Morton
2006-10-10 21:40 ` Vivek Goyal
2006-10-11 2:35 ` Andrew Morton
2006-10-06 19:01 ` Eric W. Biederman
2006-10-04 7:08 ` Eric W. Biederman
2006-10-04 14:23 ` Vivek Goyal
2006-10-05 3:09 ` Eric W. Biederman
2006-10-04 17:03 ` Vivek Goyal
2006-10-05 6:25 ` Eric W. Biederman
2006-10-05 21:34 ` Vivek Goyal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20061003170032.GA30036@in.ibm.com \
--to=vgoyal@in.ibm.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=dzickus@redhat.com \
--cc=ebiederm@xmission.com \
--cc=fastboot@lists.osdl.org \
--cc=horms@verge.net.au \
--cc=hpa@zytor.com \
--cc=lace@jankratochvil.net \
--cc=linux-kernel@vger.kernel.org \
--cc=lwang@redhat.com \
--cc=magnus.damm@gmail.com \
--cc=maneesh@in.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox