[libvirt] [PATCH RFC 0/4] Expose Expose IOMMU and VFIO host capabilities

Michal Privoznik mprivozn at redhat.com
Thu Jun 26 10:18:24 UTC 2014


*** NOT FOR UPSTREAM MERGE ***

This is pure RFC, that's why it contains just code without any documentation,
RNG schemas, tests, ..., with sparse commit messages. I just want to make sure
I'm on the right track this time.

BTW: The ACL issue on the command is still not resolved and honestly, I've no
solution. Long story short, with this API I'm introducing users with RO
connection can execute arbitrary files on the host. Isn't that just nice?

So, what you should see after these patches are applied? Something like this:

virsh # domcapabilities /usr/bin/qemu-system-x86_64 kvm
<emulatorCapabilities>
  <path>/usr/bin/qemu-system-x86_64</path>
  <domain>kvm</domain>
  <machine>pc-i440fx-2.1</machine>
  <arch>x86_64</arch>
  <vcpu>255</vcpu>
  <devices>
    <disk supported='yes'>
      <enum name='diskDevice'>
        <value>disk</value>
        <value>cdrom</value>
        <value>floppy</value>
        <value>lun</value>
      </enum>
      <enum name='bus'>
        <value>ide</value>
        <value>fdc</value>
        <value>scsi</value>
        <value>virtio</value>
        <value>xen</value>
        <value>usb</value>
        <value>sd</value>
      </enum>
    </disk>
    <hostdev supported='yes'>
      <enum name='mode'/>
      <enum name='startupPolicy'>
        <value>default</value>
        <value>mandatory</value>
        <value>requisite</value>
        <value>optional</value>
      </enum>
      <enum name='subsysType'>
        <value>usb</value>
        <value>pci</value>
        <value>scsi</value>
      </enum>
      <enum name='capsType'/>
      <enum name='pciBackend'>
        <value>default</value>
        <value>kvm</value>
        <value>vfio</value>
      </enum>
    </hostdev>
  </devices>
</emulatorCapabilities>


Michal Privoznik (4):
  Introduce domain_capabilities
  Introduce virConnectGetDomainCapabilities
  virsh: expose virConnectGetDomainCapabilities
  qemu: Implement virConnectGetDomainCapabilities

 include/libvirt/libvirt.h.in   |   7 ++
 src/Makefile.am                |   1 +
 src/conf/domain_capabilities.c | 217 +++++++++++++++++++++++++++++++++++++++++
 src/conf/domain_capabilities.h |  89 +++++++++++++++++
 src/driver.h                   |   9 ++
 src/libvirt.c                  |  52 ++++++++++
 src/libvirt_private.syms       |   6 ++
 src/libvirt_public.syms        |   1 +
 src/qemu/qemu_capabilities.c   |  82 ++++++++++++++++
 src/qemu/qemu_capabilities.h   |   4 +
 src/qemu/qemu_driver.c         | 102 +++++++++++++++++++
 src/remote/remote_driver.c     |   1 +
 src/remote/remote_protocol.x   |  20 +++-
 src/remote_protocol-structs    |  11 +++
 tools/virsh-host.c             |  84 ++++++++++++++++
 15 files changed, 685 insertions(+), 1 deletion(-)
 create mode 100644 src/conf/domain_capabilities.c
 create mode 100644 src/conf/domain_capabilities.h

-- 
1.8.5.5




More information about the libvir-list mailing list