From: Andrew Cooper <andrew.cooper3@citrix.com>
To: "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
"Roger Pau Monné" <roger.pau@citrix.com>
Cc: Elena Ufimtseva <elena.ufimtseva@oracle.com>,
Ian Campbell <ian.campbell@citrix.com>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
Tim Deegan <tim@xen.org>, Jan Beulich <JBeulich@suse.com>,
xen-devel <xen-devel@lists.xenproject.org>,
Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: [Draft A] Boot ABI for HVM guests without a device-model
Date: Wed, 10 Jun 2015 22:31:16 +0100 [thread overview]
Message-ID: <5578ACA4.9050403@citrix.com> (raw)
In-Reply-To: <20150610185533.GA4214@l.oracle.com>
On 10/06/2015 19:55, Konrad Rzeszutek Wilk wrote:
>> All other processor registers and flag bits are undefined. The OS is in
>> charge of setting up it's own stack, GDT and IDT.
>>
>> Note that the boot protocol resembles the multiboot1 specification,
>> this is done so OSes with multiboot1 entry points can reuse those if
>> desired. Also note that the processor starts with paging disabled,
>> which means that all the memory addresses in the start_info page will
>> be physical memory addresses.
> Wow?! Pagetables disabled?! Why? Usually boot loaders start with some
> pagetables setup for the OS - to cover at least the kernel and the
> ramdisk. Either it being in 1-1 pagetables or such.
>
> Why make this work harder for the guest?
> Why can't the hypervisor setup most of these things for the guest?
If you start with paging enabled, the domain builder has to know the
intended runmode and paging details a priori.
Starting with paging disabled allows one single guest binary to set
itself up however it likes, which includes one single binary being able
to chainload any further payload; an option not available to PV guests
at all.
There are usecases which actually want to run without paging, or without
PAE. Few, granted, but some non-the-less. Alternatively, a distro
which might wish to choose between 32 or 64bit depending on the quantity
of RAM in the VM.
>From a 32bit flat entry, it is 0x40 bytes worth of instructions for
32bit, or 0x4f bytes worth of instructions for 64bit to get set up in
the desired paging mode, with a usable stack (and I could definitely
reduce those numbers, at the expense of readability). (TODO - find
enough free time to finish the test framework and publish it.) The
point is that it is not hard at all, but offers substantially more
flexibility to both host and guest software.
~Andrew
next prev parent reply other threads:[~2015-06-10 21:31 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-10 12:34 [Draft A] Boot ABI for HVM guests without a device-model Roger Pau Monné
2015-06-10 13:15 ` Jan Beulich
2015-06-10 14:53 ` Roger Pau Monné
2015-06-10 15:53 ` Jan Beulich
2015-06-10 15:42 ` Roger Pau Monné
2015-06-11 11:01 ` Tim Deegan
2015-06-10 13:18 ` Andrew Cooper
2015-06-10 15:38 ` Roger Pau Monné
2015-06-10 15:57 ` Andrew Cooper
2015-06-11 8:23 ` Roger Pau Monné
2015-06-10 18:55 ` Konrad Rzeszutek Wilk
2015-06-10 21:31 ` Andrew Cooper [this message]
2015-06-11 8:31 ` Roger Pau Monné
2015-06-11 7:18 ` Jan Beulich
2015-06-12 13:30 ` Konrad Rzeszutek Wilk
2015-06-11 8:43 ` Roger Pau Monné
2015-06-12 13:23 ` Konrad Rzeszutek Wilk
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=5578ACA4.9050403@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=JBeulich@suse.com \
--cc=boris.ostrovsky@oracle.com \
--cc=elena.ufimtseva@oracle.com \
--cc=ian.campbell@citrix.com \
--cc=konrad.wilk@oracle.com \
--cc=roger.pau@citrix.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=tim@xen.org \
--cc=xen-devel@lists.xenproject.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.