|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH V3 8/29] tools/libxl: create vIOMMU during domain construction
From: Chao Gao <chao.gao@xxxxxxxxx>
If guest is configured to have a vIOMMU, create it during domain construction.
Signed-off-by: Chao Gao <chao.gao@xxxxxxxxx>
Signed-off-by: Lan Tianyu <tianyu.lan@xxxxxxxxx>
---
v3:
- Remove the process of querying capabilities.
---
tools/libxl/libxl_x86.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/tools/libxl/libxl_x86.c b/tools/libxl/libxl_x86.c
index 23c9a55..25cae5f 100644
--- a/tools/libxl/libxl_x86.c
+++ b/tools/libxl/libxl_x86.c
@@ -341,8 +341,25 @@ int libxl__arch_domain_create(libxl__gc *gc,
libxl_domain_config *d_config,
if (d_config->b_info.type == LIBXL_DOMAIN_TYPE_HVM) {
unsigned long shadow = DIV_ROUNDUP(d_config->b_info.shadow_memkb,
1024);
+ int i;
+
xc_shadow_control(ctx->xch, domid, XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION,
NULL, 0, &shadow, 0, NULL);
+
+ for (i = 0; i < d_config->b_info.num_viommus; i++) {
+ uint32_t id;
+ libxl_viommu_info *viommu = d_config->b_info.viommu + i;
+
+ if (viommu->type == LIBXL_VIOMMU_TYPE_INTEL_VTD) {
+ ret = xc_viommu_create(ctx->xch, domid, VIOMMU_TYPE_INTEL_VTD,
+ viommu->base_addr, viommu->cap, &id);
+ if (ret) {
+ LOGED(ERROR, domid, "create vIOMMU fail");
+ ret = ERROR_FAIL;
+ goto out;
+ }
+ }
+ }
}
if (d_config->c_info.type == LIBXL_DOMAIN_TYPE_PV &&
--
1.8.3.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |