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

Re: [Xen-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to handle qemu disaggregation



On 08/23/2012 02:30 PM, Ian Campbell wrote:
On Wed, 2012-08-22 at 13:31 +0100, Julien Grall wrote:
This patch modifies libxl interface for qemu disaggregation.
I'd rather see the interfaces changes in the same patch as the
implementation of the new interfaces.

For the moment, due to some dependencies between devices, we
can't let the user choose which QEMU emulate a device.

Moreoever this patch adds an "id" field to nic interface.
It will be used in config file to specify which QEMU handle
the network card.
Is domid+devid not sufficient to identify which nic?
Is the user can specify or find devid easily ?
I added "id" because, I would like that the user
can identify without any problem a network
interface.

A possible disaggregation is:
     - UI: Emulate graphic card, USB, keyboard, mouse, default devices
     (PIIX4, root bridge, ...)
     - IDE: Emulate disk
     - Serial: Emulate serial port
     - Audio: Emulate audio card
     - Net: Emulate one or more network cards, multiple QEMU can emulate
     different card. The emulated card is specified with its nic ID.

Signed-off-by: Julien Grall<julien.grall@xxxxxxxxxx>
---
  tools/libxl/libxl.h         |    3 +++
  tools/libxl/libxl_types.idl |   15 +++++++++++++++
  2 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
index c614d6f..71d4808 100644
--- a/tools/libxl/libxl.h
+++ b/tools/libxl/libxl.h
@@ -307,6 +307,7 @@ void libxl_cpuid_dispose(libxl_cpuid_policy_list 
*cpuid_list);
  #define LIBXL_PCI_FUNC_ALL (~0U)

  typedef uint32_t libxl_domid;
+typedef uint32_t libxl_dmid;

  /*
   * Formatting Enumerations.
@@ -478,12 +479,14 @@ typedef struct {
      libxl_domain_build_info b_info;

      int num_disks, num_nics, num_pcidevs, num_vfbs, num_vkbs;
+    int num_dms;

      libxl_device_disk *disks;
      libxl_device_nic *nics;
      libxl_device_pci *pcidevs;
      libxl_device_vfb *vfbs;
      libxl_device_vkb *vkbs;
+    libxl_dm *dms;

      libxl_action_on_shutdown on_poweroff;
      libxl_action_on_shutdown on_reboot;
diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
index daa8c79..36c802a 100644
--- a/tools/libxl/libxl_types.idl
+++ b/tools/libxl/libxl_types.idl
@@ -246,6 +246,20 @@ libxl_domain_sched_params = Struct("domain_sched_params",[
      ("extratime",    integer, {'init_val': 
'LIBXL_DOMAIN_SCHED_PARAM_EXTRATIME_DEFAULT'}),
      ])

+libxl_dm_cap = Enumeration("dm_cap", [
+    (1, "UI"), # Emulate all UI + default device
What does "default device" equate too?
The following devices:
   - i440fx
   - piix3
   - piix4
   - dma
   - xen apic
   - xen platform


+    (2, "IDE"), # Emulate IDE
+    (4, "SERIAL"), # Emulate Serial
+    (8, "AUDIO"), # Emulate audio
+    ])
+
+libxl_dm = Struct("dm", [
+    ("name",         string),
+    ("path",         string),
+    ("capabilities",   uint64),
uint64 and not libxl_dm_cap?
Will be fixed in the next patch version.

--
Julien

_______________________________________________
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®.