qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [Xen-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface


From: Julien Grall
Subject: Re: [Qemu-devel] [Xen-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to handle qemu disaggregation
Date: Fri, 24 Aug 2012 13:56:21 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11

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<address@hidden>
---
  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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]