From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
To: Paul Durrant <Paul.Durrant@citrix.com>,
"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Cc: Andrew Cooper <Andrew.Cooper3@citrix.com>,
Roger Pau Monne <roger.pau@citrix.com>,
Wei Liu <wei.liu2@citrix.com>,
"jbeulich@suse.com" <jbeulich@suse.com>,
Ian Jackson <Ian.Jackson@citrix.com>
Subject: Re: [PATCH 07/10] pvh/ioreq: Install handlers for ACPI-related PVH IO accesses
Date: Mon, 7 Nov 2016 09:01:07 -0500 [thread overview]
Message-ID: <e3c80c5c-d44c-8297-e3cc-c5fc364015aa@oracle.com> (raw)
In-Reply-To: <b14314d8450c4358be23fbc7a912d60d@AMSPEX02CL03.citrite.net>
On 11/07/2016 04:39 AM, Paul Durrant wrote:
>> -----Original Message-----
>> From: Boris Ostrovsky [mailto:boris.ostrovsky@oracle.com]
>> Sent: 06 November 2016 21:43
>> To: xen-devel@lists.xen.org
>> Cc: jbeulich@suse.com; Andrew Cooper <Andrew.Cooper3@citrix.com>;
>> Wei Liu <wei.liu2@citrix.com>; Ian Jackson <Ian.Jackson@citrix.com>; Roger
>> Pau Monne <roger.pau@citrix.com>; Boris Ostrovsky
>> <boris.ostrovsky@oracle.com>; Paul Durrant <Paul.Durrant@citrix.com>
>> Subject: [PATCH 07/10] pvh/ioreq: Install handlers for ACPI-related PVH IO
>> accesses
>>
>> No IOREQ server installed for an HVM guest (as indicated
>> by HVM_PARAM_NR_IOREQ_SERVER_PAGES being set to zero) implies
>> a PVH guest. These guests need to handle ACPI-related IO
>> accesses.
>>
>> Logic for the handler will be provided by a later patch.
>>
>> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
>> ---
>> CC: Paul Durrant <paul.durrant@citrix.com>
>> ---
>> tools/libxc/xc_dom_x86.c | 3 +++
>> xen/arch/x86/hvm/hvm.c | 13 +++++++++----
>> xen/arch/x86/hvm/ioreq.c | 17 +++++++++++++++++
>> xen/include/asm-x86/hvm/ioreq.h | 1 +
>> 4 files changed, 30 insertions(+), 4 deletions(-)
>>
>> diff --git a/tools/libxc/xc_dom_x86.c b/tools/libxc/xc_dom_x86.c
>> index 7fcdee1..0017694 100644
>> --- a/tools/libxc/xc_dom_x86.c
>> +++ b/tools/libxc/xc_dom_x86.c
>> @@ -649,6 +649,9 @@ static int alloc_magic_pages_hvm(struct
>> xc_dom_image *dom)
>> /* Limited to one module. */
>> if ( dom->ramdisk_blob )
>> start_info_size += sizeof(struct hvm_modlist_entry);
>> +
>> + /* No IOREQ server for PVH guests. */
>> + xc_hvm_param_set(xch, domid,
>> HVM_PARAM_NR_IOREQ_SERVER_PAGES, 0);
> I thought params defaulted to zero...
>
>> }
>> else
>> {
>> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
>> index 704fd64..6f8439d 100644
>> --- a/xen/arch/x86/hvm/hvm.c
>> +++ b/xen/arch/x86/hvm/hvm.c
>> @@ -5206,14 +5206,19 @@ static int hvmop_set_param(
>> {
>> unsigned int i;
>>
>> - if ( a.value == 0 ||
>> - a.value > sizeof(d->arch.hvm_domain.ioreq_gmfn.mask) * 8 )
> ...and if they do then you should not need this change.
>
>> + if ( a.value > sizeof(d->arch.hvm_domain.ioreq_gmfn.mask) * 8 )
>> {
>> rc = -EINVAL;
>> break;
>> }
>> - for ( i = 0; i < a.value; i++ )
>> - set_bit(i, &d->arch.hvm_domain.ioreq_gmfn.mask);
>> +
>> + if ( a.value == 0 ) /* PVH guest */
>> + acpi_ioreq_init(d);
>> + else
>> + {
>> + for ( i = 0; i < a.value; i++ )
>> + set_bit(i, &d->arch.hvm_domain.ioreq_gmfn.mask);
>> + }
> This looks quite wrong. Initializing the acpi io hander should be done directly in hvm_domain_initialise() IMO and not as an obscure side effect of setting a parameter to its default value.
Right, this call indeed is used to tell the hypervisor that it should
handle IO accesses itself. It was either this or adding another
emulation flag (which is what Andrew prefers).
-boris
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-11-07 14:01 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-06 21:42 [PATCH 00/10] PVH VCPU hotplug support Boris Ostrovsky
2016-11-06 21:42 ` [PATCH 01/10] x86/domctl: Add XEN_DOMCTL_set_avail_vcpus Boris Ostrovsky
2016-11-07 15:30 ` Konrad Rzeszutek Wilk
2016-11-07 18:24 ` Boris Ostrovsky
2016-11-08 19:07 ` Daniel De Graaf
2016-11-06 21:42 ` [PATCH 02/10] acpi: Define ACPI IO registers for PVH guests Boris Ostrovsky
2016-11-06 21:42 ` [PATCH 03/10] pvh: Set online VCPU map to avail_vcpus Boris Ostrovsky
2016-11-07 15:36 ` Konrad Rzeszutek Wilk
2016-11-07 15:52 ` Boris Ostrovsky
2016-11-06 21:42 ` [PATCH 04/10] acpi: Power and Sleep ACPI buttons are not emulated Boris Ostrovsky
2016-11-07 15:38 ` Konrad Rzeszutek Wilk
2016-11-07 15:54 ` Boris Ostrovsky
2016-11-07 17:24 ` annie li
2016-11-06 21:42 ` [PATCH 05/10] acpi: Make pmtimer optional in FADT Boris Ostrovsky
2016-11-07 15:39 ` Konrad Rzeszutek Wilk
2016-11-06 21:42 ` [PATCH 06/10] acpi: PVH guests need _E02 method Boris Ostrovsky
2016-11-07 15:45 ` Konrad Rzeszutek Wilk
2016-11-07 16:08 ` Boris Ostrovsky
2016-11-07 16:08 ` Konrad Rzeszutek Wilk
2016-11-06 21:42 ` [PATCH 07/10] pvh/ioreq: Install handlers for ACPI-related PVH IO accesses Boris Ostrovsky
2016-11-07 9:39 ` Paul Durrant
2016-11-07 14:01 ` Boris Ostrovsky [this message]
2016-11-07 14:00 ` Paul Durrant
2016-11-06 21:42 ` [PATCH 08/10] pvh/acpi: Handle ACPI accesses for PVH guests Boris Ostrovsky
2016-11-07 9:51 ` Paul Durrant
2016-11-08 16:14 ` Boris Ostrovsky
2016-11-07 15:55 ` Konrad Rzeszutek Wilk
2016-11-07 16:20 ` Boris Ostrovsky
2016-11-07 16:47 ` Jan Beulich
2016-11-06 21:42 ` [PATCH 09/10] events/x86: Define SCI virtual interrupt Boris Ostrovsky
2016-11-07 16:05 ` Konrad Rzeszutek Wilk
2016-11-07 16:29 ` Boris Ostrovsky
2016-11-06 21:42 ` [PATCH 10/10] pvh: Send an SCI on VCPU hotplug event Boris Ostrovsky
2016-11-07 11:41 ` [PATCH 00/10] PVH VCPU hotplug support Andrew Cooper
2016-11-07 14:19 ` Boris Ostrovsky
2016-11-07 14:46 ` Andrew Cooper
2016-11-07 15:30 ` 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=e3c80c5c-d44c-8297-e3cc-c5fc364015aa@oracle.com \
--to=boris.ostrovsky@oracle.com \
--cc=Andrew.Cooper3@citrix.com \
--cc=Ian.Jackson@citrix.com \
--cc=Paul.Durrant@citrix.com \
--cc=jbeulich@suse.com \
--cc=roger.pau@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).