xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Wei Wang <wei.wang2@amd.com>
To: JBeulich@suse.com, Ian.Jackson@eu.citrix.com,
	Ian.Campbell@citrix.com, keir@xen.org
Cc: xen-devel@lists.xensource.com
Subject: [PATCH 16 of 16] libxl: pass iommu parameter to qemu-dm
Date: Fri, 23 Dec 2011 12:29:25 +0100	[thread overview]
Message-ID: <1aad019305172c4abca8.1324639765@gran.amd.com> (raw)
In-Reply-To: <patchbomb.1324639749@gran.amd.com>

# HG changeset patch
# User Wei Wang <wei.wang2@amd.com>
# Date 1324569422 -3600
# Node ID 1aad019305172c4abca8c2c9d7e632fe3291fead
# Parent  8ea73cd1a367b318f72026a02629c774d24f999f
libxl: pass iommu parameter to qemu-dm.
When iomm = 0, virtual iommu device will be disabled.

Signed-off-by: Wei Wang <wei.wang2@amd.com>

diff -r 8ea73cd1a367 -r 1aad01930517 tools/libxl/libxl_create.c
--- a/tools/libxl/libxl_create.c	Thu Dec 22 16:56:59 2011 +0100
+++ b/tools/libxl/libxl_create.c	Thu Dec 22 16:57:02 2011 +0100
@@ -559,7 +559,7 @@ static int do_domain_create(libxl__gc *g
         libxl_device_vkb_dispose(&vkb);
 
         dm_info->domid = domid;
-        ret = libxl__create_device_model(gc, dm_info,
+        ret = libxl__create_device_model(gc, dm_info, &d_config->b_info,
                                         d_config->disks, d_config->num_disks,
                                         d_config->vifs, d_config->num_vifs,
                                         &dm_starting);
diff -r 8ea73cd1a367 -r 1aad01930517 tools/libxl/libxl_dm.c
--- a/tools/libxl/libxl_dm.c	Thu Dec 22 16:56:59 2011 +0100
+++ b/tools/libxl/libxl_dm.c	Thu Dec 22 16:57:02 2011 +0100
@@ -84,6 +84,7 @@ static const char *libxl__domain_bios(li
 static char ** libxl__build_device_model_args_old(libxl__gc *gc,
                                                   const char *dm,
                                                   libxl_device_model_info *info,
+                                                  libxl_domain_build_info *b_info,
                                                   libxl_device_disk *disks, int num_disks,
                                                   libxl_device_nic *vifs, int num_vifs)
 {
@@ -199,6 +200,9 @@ static char ** libxl__build_device_model
         if (info->gfx_passthru) {
             flexarray_append(dm_args, "-gfx_passthru");
         }
+        if (b_info && b_info->u.hvm.iommu) {
+            flexarray_append(dm_args, "-iommu");
+        }
     }
     if (info->saved_state) {
         flexarray_vappend(dm_args, "-loadvm", info->saved_state, NULL);
@@ -237,6 +241,7 @@ static const char *qemu_disk_format_stri
 static char ** libxl__build_device_model_args_new(libxl__gc *gc,
                                                   const char *dm,
                                                   libxl_device_model_info *info,
+                                                  libxl_domain_build_info *b_info,
                                                   libxl_device_disk *disks, int num_disks,
                                                   libxl_device_nic *vifs, int num_vifs)
 {
@@ -409,6 +414,9 @@ static char ** libxl__build_device_model
         if (info->gfx_passthru) {
             flexarray_append(dm_args, "-gfx_passthru");
         }
+        if (b_info && b_info->u.hvm.iommu) {
+            flexarray_append(dm_args, "-iommu");
+        }
     }
     if (info->saved_state) {
         /* This file descriptor is meant to be used by QEMU */
@@ -500,6 +508,7 @@ static char ** libxl__build_device_model
 static char ** libxl__build_device_model_args(libxl__gc *gc,
                                               const char *dm,
                                               libxl_device_model_info *info,
+                                              libxl_domain_build_info *b_info,
                                               libxl_device_disk *disks, int num_disks,
                                               libxl_device_nic *vifs, int num_vifs)
 {
@@ -507,11 +516,11 @@ static char ** libxl__build_device_model
 
     switch (info->device_model_version) {
     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-        return libxl__build_device_model_args_old(gc, dm, info,
+        return libxl__build_device_model_args_old(gc, dm, info, b_info,
                                                   disks, num_disks,
                                                   vifs, num_vifs);
     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
-        return libxl__build_device_model_args_new(gc, dm, info,
+        return libxl__build_device_model_args_new(gc, dm, info, b_info,
                                                   disks, num_disks,
                                                   vifs, num_vifs);
     default:
@@ -619,7 +628,7 @@ static int libxl__create_stubdom(libxl__
         goto out;
     }
 
-    args = libxl__build_device_model_args(gc, "stubdom-dm", info,
+    args = libxl__build_device_model_args(gc, "stubdom-dm", info, NULL,
                                           disks, num_disks,
                                           vifs, num_vifs);
     if (!args) {
@@ -782,6 +791,7 @@ out:
 
 int libxl__create_device_model(libxl__gc *gc,
                               libxl_device_model_info *info,
+                              libxl_domain_build_info *b_info,
                               libxl_device_disk *disks, int num_disks,
                               libxl_device_nic *vifs, int num_vifs,
                               libxl__spawner_starting **starting_r)
@@ -820,7 +830,7 @@ int libxl__create_device_model(libxl__gc
         rc = ERROR_FAIL;
         goto out;
     }
-    args = libxl__build_device_model_args(gc, dm, info, disks, num_disks,
+    args = libxl__build_device_model_args(gc, dm, info, b_info, disks, num_disks,
                                           vifs, num_vifs);
     if (!args) {
         rc = ERROR_FAIL;
@@ -1046,7 +1056,7 @@ int libxl__create_xenpv_qemu(libxl__gc *
                              libxl__spawner_starting **starting_r)
 {
     libxl__build_xenpv_qemu_args(gc, domid, vfb, info);
-    libxl__create_device_model(gc, info, NULL, 0, NULL, 0, starting_r);
+    libxl__create_device_model(gc, info, NULL, NULL, 0, NULL, 0, starting_r);
     return 0;
 }
 
diff -r 8ea73cd1a367 -r 1aad01930517 tools/libxl/libxl_internal.h
--- a/tools/libxl/libxl_internal.h	Thu Dec 22 16:56:59 2011 +0100
+++ b/tools/libxl/libxl_internal.h	Thu Dec 22 16:57:02 2011 +0100
@@ -466,6 +466,7 @@ _hidden const char *libxl__domain_device
                                                libxl_device_model_info *info);
 _hidden int libxl__create_device_model(libxl__gc *gc,
                               libxl_device_model_info *info,
+                              libxl_domain_build_info *b_info,
                               libxl_device_disk *disk, int num_disks,
                               libxl_device_nic *vifs, int num_vifs,
                               libxl__spawner_starting **starting_r);

  parent reply	other threads:[~2011-12-23 11:29 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-10 17:07 [PATCH 00 of 14 V3] amd iommu: support ATS device passthru on IOMMUv2 systems Wei Wang
2012-01-10 17:07 ` [PATCH 01 of 14 V3] amd iommu: Refactoring iommu ring buffer definition Wei Wang
2012-01-10 17:07 ` [PATCH 02 of 14 V3] amd iommu: Introduces new helper functions to simplify bitwise operations Wei Wang
2012-01-10 17:07 ` [PATCH 03 of 14 V3] amd iommu: Add iommu emulation for hvm guest Wei Wang
2012-01-12 11:36   ` Jan Beulich
2012-01-16 10:29     ` Wei Wang
2012-01-10 17:07 ` [PATCH 04 of 14 V3] amd iommu: Enable ppr log Wei Wang
2012-01-10 17:07 ` [PATCH 05 of 14 V3] amd iommu: Enable guest level translation Wei Wang
2012-01-10 17:07 ` [PATCH 06 of 14 V3] amd iommu: add ppr log processing into iommu interrupt handling Wei Wang
2012-01-10 17:07 ` [PATCH 07 of 14 V3] amd iommu: Add 2 hypercalls for libxc Wei Wang
2012-01-10 17:07 ` [PATCH 08 of 14 V3] amd iommu: Add a new flag to indication iommuv2 feature enabled or not Wei Wang
2012-01-10 17:07 ` [PATCH 09 of 14 V3] amd iommu: Add a hypercall for hvmloader Wei Wang
2012-01-10 17:07 ` [PATCH 10 of 14 V3] amd iommu: Enable FC bit in iommu host level PTE Wei Wang
2012-01-10 17:07 ` [PATCH 11 of 14 V3] hvmloader: Build IVRS table Wei Wang
2012-01-10 17:07 ` [PATCH 12 of 14 V3] libxc: add wrappers for new hypercalls Wei Wang
2012-01-10 17:07 ` [PATCH 13 of 14 V3] libxl: bind virtual bdf to physical bdf after device assignment Wei Wang
2012-01-10 17:13   ` Ian Jackson
2012-01-10 17:35     ` Wei Wang2
2012-01-10 17:07 ` [PATCH 14 of 14 V3] libxl: Introduce a new guest config file parameter Wei Wang
2011-12-23 11:29   ` [PATCH 00 of 16] [V2] amd iommu: support ATS device passthru on IOMMUv2 systems Wei Wang
2011-12-23 11:29     ` [PATCH 01 of 16] amd iommu: Refactoring iommu ring buffer definition Wei Wang
2012-01-02 12:44       ` Jan Beulich
2011-12-23 11:29     ` [PATCH 02 of 16] amd iommu: Introduces new helper functions to simplify iommu bitwise operations Wei Wang
2012-01-02 12:52       ` Jan Beulich
2011-12-23 11:29     ` [PATCH 03 of 16] amd iommu: Add iommu emulation for hvm guest Wei Wang
2011-12-23 11:29     ` [PATCH 04 of 16] amd iommu: Enable ppr log Wei Wang
2012-01-02 13:10       ` Jan Beulich
2011-12-23 11:29     ` [PATCH 05 of 16] amd iommu: Enable guest level translation Wei Wang
2011-12-23 11:29     ` [PATCH 06 of 16] amd iommu: add ppr log processing into iommu interrupt handling Wei Wang
2012-01-02 13:13       ` Jan Beulich
2012-01-03  8:58         ` Wei Wang2
2011-12-23 11:29     ` [PATCH 07 of 16] amd iommu: Add 2 hypercalls for libxc Wei Wang
2012-01-02 12:15       ` Jan Beulich
2011-12-23 11:29     ` [PATCH 08 of 16] amd iommu: Add a hypercall for hvmloader Wei Wang
2012-01-02 11:41       ` Jan Beulich
2011-12-23 11:29     ` [PATCH 09 of 16] amd iommu: add iommu mmio handler Wei Wang
2012-01-02 11:39       ` Jan Beulich
2011-12-23 11:29     ` [PATCH 10 of 16] amd iommu: Enable FC bit in iommu host level PTE Wei Wang
2012-01-02 11:36       ` Jan Beulich
2012-01-03 10:05         ` Wei Wang2
2012-01-03 10:12           ` Jan Beulich
2012-01-03 10:37             ` Wei Wang2
2011-12-23 11:29     ` [PATCH 11 of 16] amd iommu: Add a new flag to indication iommuv2 feature enabled or not Wei Wang
2012-01-02 11:29       ` Jan Beulich
2011-12-23 11:29     ` [PATCH 12 of 16] hvmloader: Build IVRS table Wei Wang
2011-12-23 11:36       ` Ian Campbell
2011-12-23 11:52         ` Wei Wang2
2011-12-23 11:29     ` [PATCH 13 of 16] libxc: add wrappers for new hypercalls Wei Wang
2011-12-23 11:29     ` [PATCH 14 of 16] libxl: bind virtual bdf to physical bdf after device assignment Wei Wang
2011-12-23 11:37       ` Ian Campbell
2011-12-23 11:56         ` Wei Wang2
2012-01-03 16:03       ` Ian Jackson
2011-12-23 11:29     ` [PATCH 15 of 16] libxl: Introduce a new guest config file parameter Wei Wang
2012-01-03 16:02       ` Ian Jackson
2012-01-10 17:12         ` [PATCH 15 of 16] libxl: Introduce a new guest config file parameter [and 1 more messages] Ian Jackson
2012-01-11 10:20           ` Wei Wang2
2012-01-23 13:59             ` Ian Jackson
2011-12-23 11:29     ` Wei Wang [this message]
2012-01-11  8:43   ` [PATCH 14 of 14 V3] libxl: Introduce a new guest config file parameter Ian Campbell
2012-01-11 10:47     ` Wei Wang2
2012-01-11 15:04 ` [PATCH 00 of 14 V3] amd iommu: support ATS device passthru on IOMMUv2 systems Jan Beulich
2012-01-11 17:36   ` Wei Wang

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=1aad019305172c4abca8.1324639765@gran.amd.com \
    --to=wei.wang2@amd.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=JBeulich@suse.com \
    --cc=keir@xen.org \
    --cc=xen-devel@lists.xensource.com \
    /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).