xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: elena.ufimtseva@oracle.com, wei.liu2@citrix.com,
	ian.campbell@citrix.com, stefano.stabellini@eu.citrix.com,
	andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com,
	xen-devel@lists.xen.org, roger.pau@citrix.com
Subject: Re: [PATCH v4 2/4] x86/compat: Test both PV and PVH guests for compat mode
Date: Wed, 02 Sep 2015 10:01:03 -0400	[thread overview]
Message-ID: <55E7011F.5040002@oracle.com> (raw)
In-Reply-To: <55E71202020000780009EFCB@prv-mh.provo.novell.com>

On 09/02/2015 09:13 AM, Jan Beulich wrote:
>>>> On 02.09.15 at 14:31, <boris.ostrovsky@oracle.com> wrote:
>> On 09/02/2015 04:08 AM, Jan Beulich wrote:
>>>>>> Boris Ostrovsky <boris.ostrovsky@oracle.com> 09/02/15 2:55 AM >>>
>>>> On 08/27/2015 12:01 PM, Jan Beulich wrote:
>>>>>>>> On 13.08.15 at 20:12, <boris.ostrovsky@oracle.com> wrote:
>>>>>> @@ -777,7 +777,7 @@ int arch_set_info_guest(
>>>>>>     
>>>>>>         /* The context is a compat-mode one if the target domain is
>> compat-mode;
>>>>>>          * we expect the tools to DTRT even in compat-mode callers. */
>>>>>> -    compat = is_pv_32bit_domain(d);
>>>>>> +    compat = is_pv_32bit_domain(d) || is_pvh_32bit_domain(d);
>>>>> I continue to think that this should include a v->domain ==
>>>>> current->domain check (to match behavior for HVM guests
>>>>> from the tool stack perspective). Having looked at patch 4, I also
>>>>> can't see how the tool stack is being made expect a non-native
>>>>> guest context record in the 32-bit PVH case (i.e. I'd appreciate
>>>>> if you could point out where that hides).
>>>> For vcpu 0 current->domain is dom0 so I am not sure how this check would
>>>> work.
>>>>
>>>> For a 32-bit PVH guest the toolstack will place data into
>>>> vcpu_guest_context_x86_32_t (in vcpu_x86_32()) and so the hypervisor,
>>>> knowing that the guest is a compat one (based on the test above), will
>>>> access appropriate fields.
>>>>
>>>> This is not how HVM guests are started --- "classic" PVH behaves very
>>>> much like a PV guest, unlike what we are doing with no-dm PVH.
>>> And I believe this to be wrong, and potentially getting in the way of the
>> no-dm
>>> work - Roger?
>>>
>>> As to the reference to vcpu_x86_32() - by its name alone it is already clear
>>> that this is after the determination of what bit width a guest to deal with, and
>>> looking at xc_dom_32_pae I still can't see why PVH guests would (intentionally
>>> and legitimately) be treated like PV rather than HVM ones (not to speak of the
>>> fact that I don't think 32-bit PVH is in any way limited to PAE).
>> The purpose of this series is to get 32-bit guests to parity with
>> classic PVH with minimal changes and then move on to no-dm. Not getting
>> in the way of no-dm is obviously important but making classic behave
>> like no-dm (which is, to certain extent, is what you are suggesting) is
>> out of scope.
> Well, okay. But are you saying then that 64-bit PVH also just
> _happens_ to be treated like PV in the tool stack?

Yes. They both are processed by tollstack's elf parser (and the size is 
determined by xc_dom_guest_type()).

> IOW I'm still missing
> the explicit tool stack adjustment that makes it use a guest-bit-width
> context for PVH guests.
>
>> (I haven't considered non-PAE case, TBH)
> But I'm afraid you need to.
>

Actually, at least for Linux, CONFIG_XEN 'depends on X86_64 || (X86_32 
&& X86_PAE)'. And I don't know whether there are any other OSs (i.e. 
FreeBSD) that are going to ever support 32-bit PVH-classic (Roger might 
correct me on that).

-boris

  reply	other threads:[~2015-09-02 14:01 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-13 18:12 [PATCH v4 0/4] 32-bit domU PVH support Boris Ostrovsky
2015-08-13 18:12 ` [PATCH v4 1/4] x86/pvh: Set 32b PVH guest mode in XEN_DOMCTL_set_address_size Boris Ostrovsky
2015-08-13 18:12 ` [PATCH v4 2/4] x86/compat: Test both PV and PVH guests for compat mode Boris Ostrovsky
2015-08-27 16:01   ` Jan Beulich
2015-09-02  0:53     ` Boris Ostrovsky
2015-09-02  8:08       ` Jan Beulich
2015-09-02 12:31         ` Boris Ostrovsky
2015-09-02 13:13           ` Jan Beulich
2015-09-02 14:01             ` Boris Ostrovsky [this message]
2015-09-02 14:16               ` Roger Pau Monné
2015-09-02 15:26               ` Jan Beulich
2015-09-02 14:01         ` Roger Pau Monné
2015-08-13 18:12 ` [PATCH v4 3/4] x86/pvh: Handle hypercalls for 32b PVH guests Boris Ostrovsky
2015-08-27 16:02   ` Jan Beulich
2015-08-13 18:12 ` [PATCH v4 4/4] libxc/x86/pvh: Allow creation of " Boris Ostrovsky

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=55E7011F.5040002@oracle.com \
    --to=boris.ostrovsky@oracle.com \
    --cc=JBeulich@suse.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=elena.ufimtseva@oracle.com \
    --cc=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=roger.pau@citrix.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).