[libvirt] [PATCH 21/27] Add API for issuing 'getfd' and 'closefd' monitor commands
Daniel P. Berrange
berrange at redhat.com
Mon Sep 28 13:39:26 UTC 2009
On Mon, Sep 28, 2009 at 02:23:05PM +0100, Mark McLoughlin wrote:
> On Thu, 2009-09-24 at 16:00 +0100, Daniel P. Berrange wrote:
> > * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h: Add new
> > qemuMonitorCloseFileHandle and qemuMonitorSendFileHandle
> > APIs for processing file handles
> > * src/qemu/qemu_driver.c: Convert NIC hotplug method over to
> > use qemuMonitorCloseFileHandle and qemuMonitorSendFileHandle
> > ---
> > src/qemu/qemu_driver.c | 40 +++------------------
> > src/qemu/qemu_monitor_text.c | 78 ++++++++++++++++++++++++++++++++++++++++++
> > src/qemu/qemu_monitor_text.h | 6 +++
> > 3 files changed, 90 insertions(+), 34 deletions(-)
> >
> > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> > index b447a87..f8710a6 100644
> > --- a/src/qemu/qemu_driver.c
> > +++ b/src/qemu/qemu_driver.c
> > @@ -4619,7 +4619,7 @@ static int qemudDomainAttachNetDevice(virConnectPtr conn,
> > {
> > virDomainNetDefPtr net = dev->data.net;
> > char *cmd = NULL, *reply = NULL, *remove_cmd = NULL;
> > - char *tapfd_name = NULL, *tapfd_close = NULL;
> > + char *tapfd_name = NULL;
> > int i, tapfd = -1;
> > unsigned domain, bus, slot;
> >
> > @@ -4662,32 +4662,8 @@ static int qemudDomainAttachNetDevice(virConnectPtr conn,
> > if (virAsprintf(&tapfd_name, "fd-%s", net->hostnet_name) < 0)
> > goto no_memory;
> >
> > - if (virAsprintf(&tapfd_close, "closefd %s", tapfd_name) < 0)
> > - goto no_memory;
>
> You're dropping the pre-allocation of the closefd command meaning the
> code is less likely to actually work under OOM, but we're fantasising if
> we think our OOM handling is that good anyway :-)
I observed that the 'qemudMonitorCommandWithHandler' method which we
then invoke, has several calls to VIR_REALLOC, ergo pre-allocating the
command string won't save us in an OOM scenario.
Regards,
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list