[libvirt] [PATCH V3 1/2] Intorduce file descriptor set for QEMU domains

Daniel P. Berrange berrange at redhat.com
Fri Feb 8 10:22:37 UTC 2013


On Thu, Feb 07, 2013 at 05:26:10PM -0500, Stefan Berger wrote:
> On 02/07/2013 12:58 PM, Daniel P. Berrange wrote:
> >On Thu, Feb 07, 2013 at 12:56:45PM -0500, Stefan Berger wrote:
> >>On 02/07/2013 10:12 AM, Daniel P. Berrange wrote:
> >>>On Mon, Feb 04, 2013 at 07:12:37PM -0500, Stefan Berger wrote:
> >>>>Create field in virDomainDeviceInfo structure to hold
> >>>>file descriptor set the device is associated with. Have
> >>>>the number written into the Device Info XML and parsed
> >>>>from the XML.
> >>>>Remember the next-toy use file descriptor set in the QEMU
> >>>>private domain structure.
> >>>>Upon libvirt restart determine the maximum file descriptor
> >>>>set used in the Device Info XML and remember the
> >>>>next-to-use file descriptor set in the QEMU private domain
> >>>>structure.
> >>>>
> >>>>Upon termination of a domain, reset the next-to-use file
> >>>>descriptor set to its initial value '1'.
> >>>>
> >>>>Stefan Berger <stefanb at linux.vnet.ibm.com>
> >>>>
> >>>>---
> >>>>  src/conf/capabilities.h |    5 ++++-
> >>>>  src/conf/domain_conf.c  |   20 +++++++++++++++++---
> >>>>  src/conf/domain_conf.h  |    1 +
> >>>>  src/lxc/lxc_domain.c    |    3 ++-
> >>>>  src/qemu/qemu_domain.c  |   23 ++++++++++++++++++++++-
> >>>>  src/qemu/qemu_domain.h  |    2 ++
> >>>>  src/qemu/qemu_process.c |    2 ++
> >>>>  7 files changed, 50 insertions(+), 6 deletions(-)
> >>>I really don't like the fact that we're modifying the virDomainDef
> >>>structs, which are intended to hold static config description, to
> >>>also hold QEMU specific dynamic state. We did this in the past
> >>>before we had the per-driver 'privateData' associated with
> >>>virDomainObjPtr instances.
> >>In these patches we are storing the fdset that's in use by a
> >>particular device in the virDomainDeviceInfo structure and are
> >>persisting that fdset number next to the device's alias into XML
> >>written into /var/run/libvirt/qemu to be able to restore it upon
> >>libvirt restart. Now we would either need a similar per-device
> >>structure in parallel to those virDomainDeviceInfo structures or
> >>connect a QEMU private data structure to that virDomainDeviceInfo
> >>structure for storing the dynamic data and to keep reference back to
> >>the device. Not sure what's the best path ...
> >Just have a hashtable mapping device alias names -> fd set numbers
> >in the qemuDomainObjPrivatePtr, and write that out in the QEMU
> >private XML. There's no need to directly mirror the structs.
> >
> 
> you agree to this XML ?
> 
>   <fdsets>
>     <entry alias='ide0-0-0' fdset='1'/>
>     <entry alias='serial0' fdset='2'/>
>     <entry alias='serial1' fdset='3'/>
>   </fdsets>

Yes, sort sort of thing looks better to me


Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list