[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [RFC][PATCH 08/13] tools: extend xc_assign_device() to support rdm reservation policy



On 2015/4/20 21:39, Jan Beulich wrote:
On 10.04.15 at 11:21, <tiejun.chen@xxxxxxxxx> wrote:
--- a/tools/libxc/xc_domain.c
+++ b/tools/libxc/xc_domain.c
@@ -1654,13 +1654,15 @@ int xc_domain_setdebugging(xc_interface *xch,
  int xc_assign_device(
      xc_interface *xch,
      uint32_t domid,
-    uint32_t machine_sbdf)
+    uint32_t machine_sbdf,
+    uint32_t flag)
  {
      DECLARE_DOMCTL;

      domctl.cmd = XEN_DOMCTL_assign_device;
      domctl.domain = domid;
      domctl.u.assign_device.machine_sbdf = machine_sbdf;
+    domctl.u.assign_device.sbdf_flag = flag;

The previous patch needs to initialize this field, in order to not pass
random input to the hypervisor. Using the ..._TRY value here
intermediately (until this patch gets applied) would seem the right
approach.


If I'm correct, looks I should introduce a little of change in previous patch,

diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 250d1e4..0bcfd87 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -1513,7 +1513,7 @@ int iommu_do_pci_domctl(
 {
     u16 seg;
     u8 bus, devfn;
-    u32 flag;
+    u32 flag = XEN_DOMCTL_PCIDEV_RDM_TRY;
     int ret = 0;

     switch ( domctl->cmd )
@@ -1582,7 +1582,6 @@ int iommu_do_pci_domctl(
         seg = domctl->u.assign_device.machine_sbdf >> 16;
         bus = (domctl->u.assign_device.machine_sbdf >> 8) & 0xff;
         devfn = domctl->u.assign_device.machine_sbdf & 0xff;
-        flag = domctl->u.assign_device.flag;

         ret = device_assigned(seg, bus, devfn) ?:
               assign_device(d, seg, bus, devfn, flag);

Then in this patch,

@@ -1513,7 +1513,7 @@ int iommu_do_pci_domctl(
 {
     u16 seg;
     u8 bus, devfn;
-    u32 flag = XEN_DOMCTL_PCIDEV_RDM_TRY;
+    u32 flag;
     int ret = 0;

     switch ( domctl->cmd )
@@ -1582,6 +1582,7 @@ int iommu_do_pci_domctl(
         seg = domctl->u.assign_device.machine_sbdf >> 16;
         bus = (domctl->u.assign_device.machine_sbdf >> 8) & 0xff;
         devfn = domctl->u.assign_device.machine_sbdf & 0xff;
+        flag = domctl->u.assign_device.flag;

         ret = device_assigned(seg, bus, devfn) ?:
               assign_device(d, seg, bus, devfn, flag);

Thanks
Tiejun



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.