[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 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?

> 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?

> +    (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?

> +    ("vifs",         libxl_string_list),
> +    ])
> +
>  libxl_domain_build_info = Struct("domain_build_info",[
>      ("max_vcpus",       integer),
>      ("avail_vcpus",     libxl_bitmap),
> @@ -367,6 +381,7 @@ libxl_device_nic = Struct("device_nic", [
>      ("nictype", libxl_nic_type),
>      ("rate_bytes_per_interval", uint64),
>      ("rate_interval_usecs", uint32),
> +    ("id", string),
>      ])
>  
>  libxl_device_pci = Struct("device_pci", [



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