From: ebiederm@xmission.com (Eric W. Biederman)
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Jeff Garzik <jeff@garzik.org>, Andi Kleen <ak@suse.de>,
patches@x86-64.org, Vivek Goyal <vgoyal@in.ibm.com>,
linux-kernel@vger.kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
Rusty Russell <rusty@rustcorp.com.au>,
virtualization <virtualization@lists.linux-foundation.org>
Subject: Re: [patches] [PATCH] [21/22] x86_64: Extend bzImage protocol for relocatable bzImage
Date: Mon, 30 Apr 2007 16:10:31 -0600 [thread overview]
Message-ID: <m18xc9344o.fsf@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <46363A68.6080201@goop.org> (Jeremy Fitzhardinge's message of "Mon, 30 Apr 2007 11:50:16 -0700")
Jeremy Fitzhardinge <jeremy@goop.org> writes:
> Eric W. Biederman wrote:
>> I have several ideas on how we can make this work but first I have to
>> ask what is it that you are trying to accomplish?
>>
>
> The requirements are:
>
> 1. the domain builder needs to get various information about the
> guest kernel by inspecting its ELF notes
> 2. we start the kernel in 32-bit mode with paging enabled, in ring 1
> 3. the guest kernel needs various pieces of runtime information from
> the hypervisor about its runtime environment
>
> At the moment we just load a bare vmlinux kernel with a xen-specific
> entrypoint, so 1 and 2 are easy. 3 is achieved by having the domain
> builder start the kernel with %esi pointing to a Xen info structure
> which tells the kernel what it needs to know.
>
> That works OK for a kernel which is compiled to run under Xen and can't
> run in any other environment, but now that we can generate a single
> kernel which can run in any number of different environments, its
> unfortunate that we still need multiple variants of the kernel image.
Yes.
> Clearly the Xen domain builder needs to be extended to deal with a
> bzImage format kernel directly, so we can use the same actual kernel
> image for native and Xen booting. Since we're changing the domain
> builder anyway, I can change the details of how it works so long as the
> 3 requirements can still be met.
Ok.
> So, I have no problem in also building a boot protocol info structure,
> and passing that in %esi, so long as I can store a pointer to the
> Xen-specific info as well. Some info will be duplicated, like the
> initrd location, but that's OK.
Reasonable.
> I'd already reserved a Xen bootloader ID specifically with this in mind;
> all I really need is a place where I can stash the pointer.
Right.
So if you are using the standard linux kernel calling convention and
placing the standard arguments in %esi supporting bzImage gets easier.
> I think I'd prefer to have the domain builder decompress/relocate the
> kernel from the bzImage and start it directly, rather than have it
> decompress/relocate itself, but I'm not really set on that.
We can change a lot more implementation details arbitrarily if you don't
know what needs to happen for decompression and relocation. Although
I think there is a reasonable argument to support a bImage format.
bzImage without compression. The current bootloaders would not care
but in the embedded space you can save space but not including the
decompressor in the kernel.
We have to avoid the writes decompressor-prinnt routines and
possibly the reload of the segment registers. But otherwise
we should be fine. I don't see any other privileged instructions
in arch/i386/boot/compressed/{head.S, misc.c}
> It depends
> on how well it can deal with having paging enabled and being in ring 1.
> Looks like it might just be a matter of starting up with "enough" memory
> mapped.
Yes. I think so. There is an additional issue of exactly how do we
get the fixmap region allocated so we can use it but that is minor.
> So the biggest unknown is where to put the Xen ELF notes.
What I really want to do is go back to sticking an ELF header on the
bzImage. We still can't support multiple entry points that way but we
can include ELF notes fairly easily.
It looks like for the next version of booting lguest and Xen are
actually coming closer together again. Yea.
For boot protocol. 2.0.7 We currently need a subarchitecture field (16bits?).
default == 0, Xen, lguest, voyager?, visws?, numaq?, efi?
We need a subarchitecture data pointer field (32bits).
We need some subarchitecture kernel information for the different
bootloader.
We need to target .23 because it is to late for .22.
Eric
next prev parent reply other threads:[~2007-04-30 22:11 UTC|newest]
Thread overview: 217+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-28 17:58 [PATCH] [0/22] x86 candidate patches for review II: 64bit relocatable kernel Andi Kleen
2007-04-28 17:58 ` [PATCH] [1/22] x86_64: dma_ops as const Andi Kleen
2007-04-28 17:58 ` [PATCH] [2/22] x86_64: Assembly safe page.h and pgtable.h Andi Kleen
2007-04-28 17:58 ` [PATCH] [3/22] x86_64: Kill temp boot pmds Andi Kleen
2007-04-28 17:58 ` [PATCH] [4/22] x86_64: Clean up the early boot page table Andi Kleen
2007-04-28 17:58 ` [PATCH] [5/22] x86_64: Fix early printk to use standard ISA mapping Andi Kleen
2007-04-28 17:58 ` [PATCH] [6/22] x86_64: modify copy_bootdata to use virtual addresses Andi Kleen
2007-04-28 17:58 ` [PATCH] [7/22] x86_64: cleanup segments Andi Kleen
2007-04-28 17:58 ` [PATCH] [8/22] x86_64: Add EFER to the register set saved by save_processor_state Andi Kleen
2007-04-28 17:58 ` [PATCH] [9/22] x86_64: 64bit PIC SMP trampoline Andi Kleen
2007-04-28 17:58 ` [PATCH] [10/22] x86_64: Get rid of dead code in suspend resume Andi Kleen
2007-04-28 17:58 ` [PATCH] [11/22] x86_64: wakeup.S rename registers to reflect right names Andi Kleen
2007-04-28 17:58 ` [PATCH] [12/22] x86_64: wakeup.S misc cleanups Andi Kleen
2007-04-28 17:59 ` [PATCH] [13/22] x86_64: 64bit ACPI wakeup trampoline Andi Kleen
2007-04-28 17:59 ` [PATCH] [14/22] x86_64: Modify discover_ebda to use virtual addresses Andi Kleen
2007-04-28 17:59 ` [PATCH] [15/22] x86_64: Remove the identity mapping as early as possible Andi Kleen
2007-04-28 17:59 ` [PATCH] [16/22] x86: Move swsusp __pa() dependent code to arch portion Andi Kleen
2007-04-28 17:59 ` [PATCH] [17/22] x86_64: do not use virt_to_page on kernel data address Andi Kleen
2007-04-28 17:59 ` [PATCH] [18/22] x86: __pa and __pa_symbol address space separation Andi Kleen
2007-04-28 17:59 ` [PATCH] [19/22] x86_64: Relocatable Kernel Support Andi Kleen
2007-04-28 17:59 ` [PATCH] [20/22] x86_64: build-time checking Andi Kleen
2007-04-28 17:59 ` [PATCH] [21/22] x86_64: Extend bzImage protocol for relocatable bzImage Andi Kleen
2007-04-28 18:07 ` Jeff Garzik
2007-04-28 18:24 ` Andi Kleen
2007-04-28 20:18 ` [patches] " Eric W. Biederman
2007-04-28 20:38 ` H. Peter Anvin
2007-04-28 20:46 ` Eric W. Biederman
2007-04-29 4:50 ` Vivek Goyal
2007-04-28 20:39 ` Jeff Garzik
2007-04-29 7:24 ` Jeremy Fitzhardinge
2007-04-29 15:11 ` Eric W. Biederman
2007-04-29 15:11 ` Eric W. Biederman
2007-04-30 3:03 ` Rusty Russell
2007-04-30 3:03 ` Rusty Russell
2007-04-30 4:38 ` H. Peter Anvin
2007-04-30 4:38 ` H. Peter Anvin
2007-04-30 5:03 ` Rusty Russell
2007-04-30 5:25 ` Eric W. Biederman
2007-04-30 5:25 ` Eric W. Biederman
2007-04-30 16:03 ` H. Peter Anvin
2007-04-30 16:47 ` Eric W. Biederman
2007-04-30 16:47 ` Eric W. Biederman
2007-04-30 16:03 ` H. Peter Anvin
2007-04-30 15:34 ` Eric W. Biederman
2007-04-30 15:34 ` Eric W. Biederman
2007-05-01 3:38 ` Rusty Russell
2007-05-01 3:45 ` H. Peter Anvin
2007-05-01 3:45 ` H. Peter Anvin
2007-05-01 3:59 ` Rusty Russell
2007-05-01 3:59 ` Rusty Russell
2007-05-01 4:00 ` H. Peter Anvin
2007-05-01 4:00 ` H. Peter Anvin
2007-05-01 4:50 ` Rusty Russell
2007-05-01 5:28 ` H. Peter Anvin
2007-05-01 5:28 ` H. Peter Anvin
2007-05-01 6:05 ` Eric W. Biederman
2007-05-01 6:05 ` Eric W. Biederman
2007-05-01 4:50 ` Rusty Russell
2007-05-01 3:57 ` Eric W. Biederman
2007-05-01 3:57 ` Eric W. Biederman
2007-05-01 5:37 ` Jeremy Fitzhardinge
2007-05-01 6:11 ` Eric W. Biederman
2007-05-01 6:11 ` Eric W. Biederman
2007-05-01 7:34 ` Rusty Russell
2007-05-01 8:03 ` Jeremy Fitzhardinge
2007-05-01 8:03 ` Jeremy Fitzhardinge
2007-05-01 7:34 ` Rusty Russell
2007-05-01 5:37 ` Jeremy Fitzhardinge
2007-05-01 3:38 ` Rusty Russell
2007-04-30 5:03 ` Rusty Russell
2007-04-30 18:50 ` Jeremy Fitzhardinge
2007-04-30 18:50 ` Jeremy Fitzhardinge
2007-04-30 22:10 ` Eric W. Biederman
2007-04-30 22:10 ` Eric W. Biederman [this message]
2007-04-30 22:42 ` Jeremy Fitzhardinge
2007-04-30 22:51 ` Jeremy Fitzhardinge
2007-04-30 22:51 ` Jeremy Fitzhardinge
2007-04-30 23:10 ` Eric W. Biederman
2007-04-30 23:16 ` H. Peter Anvin
2007-04-30 23:16 ` H. Peter Anvin
2007-04-30 23:35 ` Eric W. Biederman
2007-04-30 23:35 ` Eric W. Biederman
2007-05-01 3:39 ` Andi Kleen
2007-05-01 3:39 ` Andi Kleen
2007-05-01 2:48 ` H. Peter Anvin
2007-05-01 2:48 ` H. Peter Anvin
2007-04-30 23:10 ` Eric W. Biederman
2007-04-30 22:42 ` Jeremy Fitzhardinge
2007-05-02 9:31 ` Gerd Hoffmann
2007-05-02 15:16 ` Jeremy Fitzhardinge
2007-05-02 15:16 ` Jeremy Fitzhardinge
2007-05-02 20:51 ` H. Peter Anvin
2007-05-02 20:51 ` H. Peter Anvin
2007-05-02 21:01 ` Jeremy Fitzhardinge
2007-05-02 21:01 ` Jeremy Fitzhardinge
2007-05-02 21:09 ` H. Peter Anvin
2007-05-02 21:39 ` Jeremy Fitzhardinge
2007-05-02 21:59 ` H. Peter Anvin
2007-05-02 23:03 ` Jeremy Fitzhardinge
2007-05-02 23:03 ` Jeremy Fitzhardinge
2007-05-03 4:50 ` Vivek Goyal
2007-05-03 4:50 ` Vivek Goyal
2007-05-03 6:42 ` Eric W. Biederman
2007-05-03 6:42 ` Eric W. Biederman
2007-05-03 7:05 ` Jeremy Fitzhardinge
2007-05-03 13:23 ` Eric W. Biederman
2007-05-03 13:23 ` Eric W. Biederman
2007-05-03 16:23 ` Jeremy Fitzhardinge
2007-05-03 16:23 ` Jeremy Fitzhardinge
2007-05-03 7:05 ` Jeremy Fitzhardinge
2007-05-08 16:41 ` yhlu
2007-05-08 17:18 ` Eric W. Biederman
2007-05-08 17:18 ` Eric W. Biederman
2007-05-08 17:33 ` yhlu
2007-05-08 17:33 ` yhlu
2007-05-08 18:51 ` yhlu
2007-05-08 19:01 ` yhlu
2007-05-08 19:01 ` yhlu
2007-05-08 19:11 ` Eric W. Biederman
2007-05-08 19:11 ` Eric W. Biederman
2007-05-08 22:00 ` yhlu
2007-05-08 22:07 ` Jeremy Fitzhardinge
2007-05-08 22:07 ` Jeremy Fitzhardinge
2007-05-08 22:35 ` H. Peter Anvin
2007-05-08 22:41 ` yhlu
2007-05-08 22:41 ` yhlu
2007-05-08 23:13 ` H. Peter Anvin
2007-05-08 23:13 ` H. Peter Anvin
2007-05-09 1:44 ` Eric W. Biederman
2007-05-09 1:44 ` Eric W. Biederman
2007-05-09 2:23 ` H. Peter Anvin
2007-05-09 2:23 ` H. Peter Anvin
2007-05-09 3:30 ` Eric W. Biederman
2007-05-09 3:30 ` Eric W. Biederman
2007-05-09 4:52 ` yhlu
2007-05-09 5:04 ` H. Peter Anvin
2007-05-09 5:04 ` H. Peter Anvin
2007-05-09 5:04 ` H. Peter Anvin
2007-05-09 5:04 ` H. Peter Anvin
2007-05-09 5:08 ` H. Peter Anvin
2007-05-09 5:48 ` yhlu
2007-05-09 5:48 ` yhlu
2007-05-09 5:54 ` H. Peter Anvin
2007-05-09 5:54 ` H. Peter Anvin
2007-05-09 5:54 ` H. Peter Anvin
2007-05-09 5:54 ` H. Peter Anvin
2007-05-09 5:54 ` H. Peter Anvin
2007-05-09 5:54 ` H. Peter Anvin
2007-05-09 5:55 ` H. Peter Anvin
2007-05-09 5:55 ` H. Peter Anvin
2007-05-09 10:52 ` Eric W. Biederman
2007-05-09 10:52 ` Eric W. Biederman
2007-05-09 16:31 ` yhlu
2007-05-09 16:31 ` yhlu
2007-05-09 19:21 ` H. Peter Anvin
2007-05-10 0:52 ` Eric W. Biederman
2007-05-10 0:52 ` Eric W. Biederman
2007-05-09 19:21 ` H. Peter Anvin
2007-05-09 5:55 ` H. Peter Anvin
2007-05-09 5:55 ` H. Peter Anvin
2007-05-09 5:55 ` H. Peter Anvin
2007-05-09 5:55 ` H. Peter Anvin
2007-05-09 5:48 ` yhlu
2007-05-09 5:48 ` yhlu
2007-05-09 5:08 ` H. Peter Anvin
2007-05-09 5:08 ` H. Peter Anvin
2007-05-09 5:08 ` H. Peter Anvin
2007-05-09 5:08 ` H. Peter Anvin
2007-05-09 5:08 ` H. Peter Anvin
2007-05-09 5:04 ` H. Peter Anvin
2007-05-09 5:04 ` H. Peter Anvin
2007-05-09 4:52 ` yhlu
2007-05-09 4:52 ` yhlu
2007-05-09 7:58 ` Gerd Hoffmann
2007-05-09 11:21 ` Eric W. Biederman
2007-05-09 11:21 ` Eric W. Biederman
2007-05-10 0:55 ` yhlu
2007-05-10 0:55 ` yhlu
2007-05-09 7:58 ` Gerd Hoffmann
2007-05-09 2:44 ` yhlu
2007-05-09 2:44 ` yhlu
2007-05-08 22:35 ` H. Peter Anvin
2007-05-08 22:00 ` yhlu
2007-05-09 3:33 ` Vivek Goyal
2007-05-09 4:42 ` yhlu
2007-05-09 4:42 ` yhlu
2007-05-09 4:42 ` yhlu
2007-05-09 4:58 ` Eric W. Biederman
2007-05-09 4:58 ` ebiederm
2007-05-09 4:58 ` ebiederm
2007-05-09 4:58 ` ebiederm
2007-05-09 4:58 ` ebiederm
2007-05-09 4:58 ` Eric W. Biederman
2007-05-09 4:42 ` yhlu
2007-05-09 3:33 ` Vivek Goyal
2007-05-08 18:51 ` yhlu
2007-05-08 17:24 ` Vivek Goyal
2007-05-08 17:24 ` Vivek Goyal
2007-05-08 17:34 ` yhlu
2007-05-08 17:34 ` yhlu
2007-05-08 16:41 ` yhlu
2007-05-02 21:59 ` H. Peter Anvin
2007-05-02 21:39 ` Jeremy Fitzhardinge
2007-05-03 2:01 ` Rusty Russell
2007-05-03 2:01 ` Rusty Russell
2007-05-02 21:09 ` H. Peter Anvin
2007-05-02 21:17 ` Eric W. Biederman
2007-05-02 21:17 ` Eric W. Biederman
2007-05-02 21:24 ` H. Peter Anvin
2007-05-02 21:36 ` Eric W. Biederman
2007-05-02 21:36 ` Eric W. Biederman
2007-05-02 21:24 ` H. Peter Anvin
2007-05-02 9:31 ` Gerd Hoffmann
2007-04-29 17:51 ` H. Peter Anvin
2007-04-29 18:10 ` Eric W. Biederman
2007-04-30 4:41 ` Rusty Russell
2007-04-28 17:59 ` [PATCH] [22/22] x86_64: Move cpu verification code to common file Andi Kleen
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=m18xc9344o.fsf@ebiederm.dsl.xmission.com \
--to=ebiederm@xmission.com \
--cc=ak@suse.de \
--cc=hpa@zytor.com \
--cc=jeff@garzik.org \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=patches@x86-64.org \
--cc=rusty@rustcorp.com.au \
--cc=vgoyal@in.ibm.com \
--cc=virtualization@lists.linux-foundation.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.