From: Paul Durrant <Paul.Durrant@citrix.com>
To: 'Chao Gao' <chao.gao@intel.com>, Wei Liu <wei.liu2@citrix.com>
Cc: Lan Tianyu <tianyu.lan@intel.com>,
Ian Jackson <Ian.Jackson@citrix.com>,
Kevin Tian <kevin.tian@intel.com>,
"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: [RFC PATCH 5/23] Tools/libxc: Add viommu operations in libxc
Date: Wed, 29 Mar 2017 09:08:06 +0000 [thread overview]
Message-ID: <ade84ba510df45fbabb934ba719ae04c@AMSPEX02CL03.citrite.net> (raw)
In-Reply-To: <20170329004005.GA5058@skl-2s3.sh.intel.com>
> -----Original Message-----
> From: Xen-devel [mailto:xen-devel-bounces@lists.xen.org] On Behalf Of
> Chao Gao
> Sent: 29 March 2017 01:40
> To: Wei Liu <wei.liu2@citrix.com>
> Cc: Lan Tianyu <tianyu.lan@intel.com>; Kevin Tian <kevin.tian@intel.com>;
> Ian Jackson <Ian.Jackson@citrix.com>; xen-devel@lists.xen.org
> Subject: Re: [Xen-devel] [RFC PATCH 5/23] Tools/libxc: Add viommu
> operations in libxc
>
> Tianyu is on vacation this two weeks, so I will try to address
> some comments on this series.
>
> On Tue, Mar 28, 2017 at 05:24:03PM +0100, Wei Liu wrote:
> >On Fri, Mar 17, 2017 at 07:27:05PM +0800, Lan Tianyu wrote:
> >> From: Chao Gao <chao.gao@intel.com>
> >>
> >> In previous patch, we introduce a common vIOMMU layer. In our design,
> >> we create/destroy vIOMMU through DMOP interface instead of creating
> it
> >> according to a config flag of domain. It makes it is possible
> >> to create vIOMMU in device model or in tool stack.
> >>
I've not been following this closely so apologies if this has already been asked...
Why would you need to create a vIOMMU instance in an external device model. Since the toolstack should be in control of the device model configuration why would it not know in advance that one was required?
Paul
> >> The following toolstack code is to add XEN_DMOP_viommu_XXX syscalls:
> >
> >Hypercalls, not syscalls.
> >
> >> - query capabilities of vIOMMU emulated by Xen
> >> - create vIOMMU in Xen hypervisor with base address, capability
> >> - destroy vIOMMU specified by viommu_id
> >>
> >> Signed-off-by: Chao Gao <chao.gao@intel.com>
> >> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
> >> ---
> >> tools/libs/devicemodel/core.c | 69
> +++++++++++++++++++++++++
> >> tools/libs/devicemodel/include/xendevicemodel.h | 35 +++++++++++++
> >> tools/libs/devicemodel/libxendevicemodel.map | 3 ++
> >> tools/libxc/include/xenctrl_compat.h | 5 ++
> >> tools/libxc/xc_devicemodel_compat.c | 18 +++++++
> >> 5 files changed, 130 insertions(+)
> >>
> >> diff --git a/tools/libs/devicemodel/core.c b/tools/libs/devicemodel/core.c
> >> index a85cb49..aee1150 100644
> >> --- a/tools/libs/devicemodel/core.c
> >> +++ b/tools/libs/devicemodel/core.c
> >
> >Bear in mind that this library is stable, so whatever ends up here can
> >change in the future.
> >
> >This is not saying the following code is problematic. It is just a
> >general FYI.
> >
> >Obviously the toolstack side is going to follow the hypervisor
> >interface, so I will do a detailed review later.
>
> Sure. If the hypervisor interface settles down, we can inform you.
>
> >
> >> +int xendevicemodel_viommu_destroy(
> >> + xendevicemodel_handle *dmod, domid_t dom, uint32_t viommu_id);
> >> #endif /* __XEN_TOOLS__ */
> >>
> >> #endif /* XENDEVICEMODEL_H */
> >> diff --git a/tools/libs/devicemodel/libxendevicemodel.map
> b/tools/libs/devicemodel/libxendevicemodel.map
> >> index 45c773e..c2e0968 100644
> >> --- a/tools/libs/devicemodel/libxendevicemodel.map
> >> +++ b/tools/libs/devicemodel/libxendevicemodel.map
> >> @@ -17,6 +17,9 @@ VERS_1.0 {
> >> xendevicemodel_modified_memory;
> >> xendevicemodel_set_mem_type;
> >> xendevicemodel_inject_event;
> >> + xendevicemodel_viommu_query_cap;
> >> + xendevicemodel_viommu_create;
> >> + xendevicemodel_viommu_destroy;
> >> xendevicemodel_restrict;
> >> xendevicemodel_close;
> >
> >I suppose this series is going to miss 4.9.
> >
> >Please add these functions to VERS_1.1.
>
> Yes. We will fix this.
>
> >
> >> local: *; /* Do not expose anything by default */
> >> diff --git a/tools/libxc/include/xenctrl_compat.h
> b/tools/libxc/include/xenctrl_compat.h
> >> index 040e7b2..315c45d 100644
> >> --- a/tools/libxc/include/xenctrl_compat.h
> >> +++ b/tools/libxc/include/xenctrl_compat.h
> >> @@ -164,6 +164,11 @@ int xc_hvm_set_mem_type(
> >> int xc_hvm_inject_trap(
> >> xc_interface *xch, domid_t domid, int vcpu, uint8_t vector,
> >> uint8_t type, uint32_t error_code, uint8_t insn_len, uint64_t cr2);
> >> +int xc_viommu_query_cap(xc_interface *xch, domid_t dom, uint64_t
> *cap);
> >> +int xc_viommu_create(
> >> + xc_interface *xch, domid_t dom, uint64_t base_addr, uint64_t cap,
> >> + uint32_t *viommu_id);
> >> +int xc_viommu_destroy(xc_interface *xch, domid_t dom, uint32_t
> viommu_id);
> >>
> >> #endif /* XC_WANT_COMPAT_DEVICEMODEL_API */
> >>
> >> diff --git a/tools/libxc/xc_devicemodel_compat.c
> b/tools/libxc/xc_devicemodel_compat.c
> >> index e4edeea..62f703a 100644
> >> --- a/tools/libxc/xc_devicemodel_compat.c
> >> +++ b/tools/libxc/xc_devicemodel_compat.c
> >
> >I don't think you need to provide compat wrappers for them. They are new
> >APIs.
>
> OK. Got it.
>
> Thanks,
> Chao
> >
> >Wei.
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> https://lists.xen.org/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2017-03-29 9:08 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-17 11:27 [RFC PATCH 00/23] xen/vIOMMU: Add vIOMMU support with irq remapping fucntion on Intel platform Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 1/23] VIOMMU: Add vIOMMU helper functions to create, destroy and query capabilities Lan Tianyu
2017-03-21 19:56 ` Julien Grall
2017-03-22 8:36 ` Tian, Kevin
2017-03-22 12:41 ` Lan, Tianyu
2017-03-22 8:45 ` Lan Tianyu
2017-03-22 11:40 ` Julien Grall
2017-03-22 13:32 ` Lan, Tianyu
2017-03-17 11:27 ` [RFC PATCH 2/23] DMOP: Introduce new DMOP commands for vIOMMU support Lan Tianyu
2017-04-17 14:36 ` Konrad Rzeszutek Wilk
2017-04-18 7:24 ` Lan Tianyu
2017-04-18 13:32 ` Konrad Rzeszutek Wilk
2017-03-17 11:27 ` [RFC PATCH 3/23] VIOMMU: Add irq request callback to deal with irq remapping Lan Tianyu
2017-04-17 14:39 ` Konrad Rzeszutek Wilk
2017-04-18 8:18 ` Lan Tianyu
2017-04-18 13:36 ` Konrad Rzeszutek Wilk
2017-03-17 11:27 ` [RFC PATCH 4/23] VIOMMU: Add get irq info callback to convert irq remapping request Lan Tianyu
2017-04-17 14:39 ` Konrad Rzeszutek Wilk
2017-03-17 11:27 ` [RFC PATCH 5/23] Tools/libxc: Add viommu operations in libxc Lan Tianyu
2017-03-28 16:24 ` Wei Liu
2017-03-29 0:40 ` Chao Gao
2017-03-29 9:08 ` Paul Durrant [this message]
2017-03-30 19:57 ` Chao Gao
2017-04-14 15:38 ` Lan, Tianyu
2017-04-17 11:08 ` Wei Liu
2017-04-17 12:01 ` Lan Tianyu
2017-05-11 12:35 ` Wei Liu
2017-05-11 12:31 ` Lan Tianyu
2017-04-18 9:08 ` Paul Durrant
2017-04-18 9:59 ` Lan Tianyu
2017-04-18 14:15 ` Paul Durrant
2017-04-19 12:21 ` Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 6/23] Tools/libacpi: Add DMA remapping reporting (DMAR) ACPI table structures Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 7/23] Tools/libacpi: Add new fields in acpi_config to build DMAR table Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 8/23] Tools/libacpi: Add a user configurable parameter to control vIOMMU attributes Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 9/23] Tools/libxl: Inform device model to create a guest with a vIOMMU device Lan Tianyu
2017-03-28 16:24 ` Wei Liu
2017-03-17 11:27 ` [RFC PATCH 10/23] x86/hvm: Introduce a emulated VTD for HVM Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 11/23] X86/vvtd: Add MMIO handler for VVTD Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 12/23] X86/vvtd: Set Interrupt Remapping Table Pointer through GCMD Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 13/23] X86/vvtd: Process interrupt remapping request Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 14/23] X86/vvtd: decode interrupt attribute from IRTE Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 15/23] X86/vioapic: Hook interrupt delivery of vIOAPIC Lan Tianyu
2017-04-17 14:43 ` Konrad Rzeszutek Wilk
2017-04-18 8:34 ` Lan Tianyu
2017-04-18 13:37 ` Konrad Rzeszutek Wilk
2017-03-17 11:27 ` [RFC PATCH 16/23] X86/vvtd: Enable Queued Invalidation through GCMD Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 17/23] X86/vvtd: Enable Interrupt Remapping " Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 18/23] x86/vpt: Get interrupt vector through a vioapic interface Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 19/23] passthrough: move some fields of hvm_gmsi_info to a sub-structure Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 20/23] Tools/libxc: Add a new interface to bind msi-ir with pirq Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 21/23] X86/vmsi: Hook guest MSI injection Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 22/23] X86/vvtd: Handle interrupt translation faults Lan Tianyu
2017-03-17 11:27 ` [RFC PATCH 23/23] X86/vvtd: Add queued invalidation (QI) support Lan Tianyu
2017-03-20 14:23 ` [RFC PATCH 00/23] xen/vIOMMU: Add vIOMMU support with irq remapping fucntion on Intel platform Roger Pau Monné
2017-03-21 2:28 ` Lan Tianyu
2017-03-21 5:29 ` Lan Tianyu
2017-03-29 8:00 ` Roger Pau Monné
2017-03-29 3:52 ` Chao Gao
2017-04-17 14:41 ` Konrad Rzeszutek Wilk
2017-04-18 8:19 ` Lan Tianyu
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=ade84ba510df45fbabb934ba719ae04c@AMSPEX02CL03.citrite.net \
--to=paul.durrant@citrix.com \
--cc=Ian.Jackson@citrix.com \
--cc=chao.gao@intel.com \
--cc=kevin.tian@intel.com \
--cc=tianyu.lan@intel.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).