[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Re: [libvirt] Libvirt debug API
From: |
Daniel P. Berrange |
Subject: |
Re: [Qemu-devel] Re: [libvirt] Libvirt debug API |
Date: |
Fri, 23 Apr 2010 15:34:15 +0100 |
User-agent: |
Mutt/1.4.1i |
On Fri, Apr 23, 2010 at 08:48:51AM -0500, Anthony Liguori wrote:
> On 04/23/2010 07:48 AM, Avi Kivity wrote:
> >On 04/22/2010 09:49 PM, Anthony Liguori wrote:
> >>>real API. Say, adding a device libvirt doesn't know about or
> >>>stopping the VM
> >>>while libvirt thinks it's still running or anything like that.
> >> Another problem is issuing Monitor commands that could confuse
> >>libvirt's
> >>
> >>We need to make libvirt and qemu smarter.
> >>
> >>We already face this problem today with multiple libvirt users. This
> >>is why sophisticated management mechanisms (like LDAP) have
> >>mechanisms to do transactions or at least a series of atomic operations.
> >
> >And people said qmp/json was overengineered...
> >
> >But seriously, transactions won't help anything. qemu maintains
> >state, and when you have two updaters touching a shared variable not
> >excepting each other to, things break, no matter how much locking
> >there is.
>
> Let's consider some concrete examples. I'm using libvirt and QMP and in
> QMP, I want to hot unplug a device.
>
> Today, I do this by listing the pci devices, and issuing a pci_del that
> takes a PCI address. This is intrinsically racy though because in the
> worst case scenario, in between when I enumerate pci devices and do the
> pci_del in QMP, in libvirt, I've done a pci_del and then a pci_add
> within libvirt of a completely different device.
This is what already happens with any QEMU >= 0.12, where libvirt uses
the new -device syntax with its 'id' parameter for all devices, and
then uses 'device_id $ID' for unplug. The app still has to be careful
it doesn't try to add a device using the same naming scheme as a
device libvirt uses. This is easy enough though if they prepend some
random string to all device IDs thy use, that won't clash with libvirt
device ID names.
Regards,
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, (continued)
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Anthony Liguori, 2010/04/26
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Daniel P. Berrange, 2010/04/26
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Anthony Liguori, 2010/04/26
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Avi Kivity, 2010/04/26
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Anthony Liguori, 2010/04/26
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Avi Kivity, 2010/04/26
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Anthony Liguori, 2010/04/26
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Avi Kivity, 2010/04/26
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Anthony Liguori, 2010/04/26
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Avi Kivity, 2010/04/26
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API,
Daniel P. Berrange <=
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Markus Armbruster, 2010/04/23
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Anthony Liguori, 2010/04/22
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Anthony Liguori, 2010/04/22
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Daniel P. Berrange, 2010/04/23
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Anthony Liguori, 2010/04/23
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Daniel P. Berrange, 2010/04/23
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Anthony Liguori, 2010/04/23
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Avi Kivity, 2010/04/25
- Re: [Qemu-devel] Re: [libvirt] Libvirt debug API, Anthony Liguori, 2010/04/26
- [Qemu-devel] Re: [libvirt] Libvirt debug API, Eric Blake, 2010/04/09