From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:52162) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T4tQL-0006Ps-KS for qemu-devel@nongnu.org; Fri, 24 Aug 2012 08:55:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T4tQE-0005m7-Vs for qemu-devel@nongnu.org; Fri, 24 Aug 2012 08:55:41 -0400 Received: from smtp02.citrix.com ([66.165.176.63]:37197) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T4tQE-0005lw-RD for qemu-devel@nongnu.org; Fri, 24 Aug 2012 08:55:34 -0400 Message-ID: <503779F5.80508@citrix.com> Date: Fri, 24 Aug 2012 13:56:21 +0100 From: Julien Grall MIME-Version: 1.0 References: <51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com> <1345728617.12501.92.camel@zakaz.uk.xensource.com> In-Reply-To: <1345728617.12501.92.camel@zakaz.uk.xensource.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [Xen-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to handle qemu disaggregation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Ian Campbell Cc: "christian.limpach@gmail.com" , "xen-devel@lists.xen.org" , "qemu-devel@nongnu.org" , Stefano Stabellini 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 >> --- >> 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