All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: Elena Ufimtseva <elena.ufimtseva@oracle.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Tim Deegan <tim@xen.org>,
	xen-devel <xen-devel@lists.xenproject.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: [Draft C] Boot ABI for HVM guests without a device-model
Date: Fri, 4 Sep 2015 16:31:28 +0200	[thread overview]
Message-ID: <55E9AB40.8060402@citrix.com> (raw)
In-Reply-To: <55E9C1E1020000780009FC72@prv-mh.provo.novell.com>

El 04/09/15 a les 16.08, Jan Beulich ha escrit:
>>>> On 04.09.15 at 14:11, <roger.pau@citrix.com> wrote:
>>  * cs: must be a 32-bit read/execute code segment with an offset of ‘0’
>>    and a limit of ‘0xFFFFFFFF’. The selector value is unspecified.
>>
>>  * ds, es: must be a 32-bit read/write data segment with an offset of
>>    ‘0’ and a limit of ‘0xFFFFFFFF’. The selector values are all unspecified.
> 
> In both cases s/offset/base/.

Right, sorry.

> 
>>  * tr: must be a 32-bit TSS (active) with a base of '0' and a limit of '0xFF'.
> 
> Already on the previous version I asked about this strange 0xFF,
> and I don't recall any answer.

My bad, I have actually changed this in the code (see v6), but forgot to
update the design document. 0x67 is perfectly fine, and is what should
be used.

Just for the record, I've initially set it to 0xff because that's how
it's done in construct_vmcs.

>>  * eflags: bit 17 (VM) must be cleared. Bit 9 (IF) must be cleared.
>>    Other bits are all unspecified.
> 
> At the very least I'd also require TF to be clear.

Yes, that makes sense. I'm quite surprised that multiboot1 doesn't
mandate TF to also be cleared.

>> The format of the structure passed in the %ebx register is the following:
> 
> Even if it may sound like splitting hair: Please use precise wording. It's
> not the structure that's contained in %ebx, but %ebx hold the address
> of that structure.

Would you be fine with replacing this sentence with:

The format of the boot start info structure is the following:

>> struct hvm_start_info {
>> #define HVM_START_MAGIC_VALUE 0x336ec578
>>     uint32_t magic;             /* Contains the magic value 0x336ec578       */
>>                                 /* ("xEn3" with the 0x80 bit of the "E" set).*/
>>     uint32_t flags;             /* SIF_xxx flags.                            */
> 
> Do really mean to re-use the SIF_* flags here?

We can introduce a new set of flags, HVM_INIT_*, which ATM is only going
to be:

#define HVM_FLAGS_INITDOMAIN (1<<0)

> 
>> AP startup
>> ==========
>>
>> AP startup is performed using hypercalls. The following VCPU operations
>> are used in order to bring up secondary vCPUs:
>>
>>  * VCPUOP_initialise is used to set the initial state of the vCPU. The
>>    argument passed to the hypercall must be of the type vcpu_hvm_context.
> 
> VCPUOP_initialise takes a struct vcpu_guest_context; I don't think
> we can or should change that.

Didn't we agree that vcpu_guest_context was not suitable for HVM/PVH guests?

Patch 24 of my HVM-without-dm series already introduces this new
structure and the necessary helpers.

Roger.


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  reply	other threads:[~2015-09-04 14:31 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-04 12:11 [Draft C] Boot ABI for HVM guests without a device-model Roger Pau Monné
2015-09-04 14:08 ` Jan Beulich
2015-09-04 14:31   ` Roger Pau Monné [this message]
2015-09-04 15:17     ` Jan Beulich
2015-09-04 15:21     ` Jan Beulich
2015-09-04 15:26       ` Ian Campbell
2015-09-04 16:01         ` Jan Beulich
2015-09-04 16:10           ` Ian Campbell
2015-09-04 15:47       ` Roger Pau Monné
2015-09-04 16:03         ` Jan Beulich
2015-09-04 16:09           ` Roger Pau Monné
2015-09-04 16:12         ` Ian Campbell
2015-09-07  9:34           ` Roger Pau Monné
2015-09-07 10:05             ` Jan Beulich
2015-09-15  7:08               ` Roger Pau Monné
2015-09-15  7:14                 ` Jan Beulich

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=55E9AB40.8060402@citrix.com \
    --to=roger.pau@citrix.com \
    --cc=JBeulich@suse.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=elena.ufimtseva@oracle.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.