[Kimchi-devel] [PATCH v9 0/5] Host device passthrough: Summary
Aline Manera
alinefm at linux.vnet.ibm.com
Thu Jul 31 20:13:58 UTC 2014
On 07/30/2014 12:29 PM, Zhou Zheng Sheng wrote:
> Hi all,
>
> v9:
> Update API.md, API.json, unit tests and MockModel. Investigated
> distro compatibility problems, adapted to Fedora 20, Fedora 19 and
> Ubuntu 14.04.
What about openSUSE 13.1 and RHEL7?
> v8:
> Change the URI for listing affected passthrough devices, suggested by
> Aline. Move hostdev.py to src/kimchi/model.py. Still discussing API
> with the front-end developer. Once the API accepted, The author should
> add tests for model and mockmodel, and change API.md and API.json
> accordingly.
> v7:
> Some minor coding style improvements.
> v6:
> Do not passthrough PCI device of class code 0x07. It might contains
> system device not suitable to assign to guest.
> v5:
> Filter ealigible pci devices according to pci class. When assigning a
> device to VM, check if there are other VMs holding it. Use
> "kimchi.model.utils.get_vm_config_flag()" to correctly set the device
> attaching API flag.
> v4:
> Add new sub-collection to host device to list the VMs holding the device.
> v3:
> Fix a small naming error introduced by rebase.
> v2:
> Handle the devices in VM's sub-collection "hostdevs".
> v1:
> Handle the devices in VM template.
>
> This patch series is to enable Kimchi to assign hos devices directly to
> a VM, thus greately improve VM performance. Currently we support assigning
> PCI device, USB device and SCSI LUN. For example, we can assign an NIC
> to VM to improve guest network throughput, or passthrough a USB camera
> to enable the guest OS to record video.
>
> Host devices form a tree. We can assign most of the devices in the tree
> to VM. By assigning a device, all the devices in its sub-tree are also
> assigned. It might not make sense to assign a USB controller, because
> the host may be using one of the devices connected to the controller.
> Instead, Kimchi just presents the "leaf" devices to assign to guest.
>
> In recent Linux kernel and KVM, it is able to recognize the IOMMU group
> of a PCI device. The "leaf" PCI devices in the same IOMMU group should
> be assigned and dismissed together. The IOMMU group is the actual
> smallest isolation granularity of the PCI devices.
>
> The first patch is to list all host devices information. It's useful on
> its own to show host devices information.
>
> The second patch is to list all eligible host devices to assign, as well
> as the "affected" devices in the same IOMMU group.
>
> The third patch creates a sub-collection "hostdevs" to the VM resource,
> and deals with assigning and dismissing devices.
>
> The fourth patch adds a sub-collection "vm_holders" to the host device
> resource. It's to list all VMs that are holding the device.
>
> Zhou Zheng Sheng (5):
> Host device passthrough: List all types of host devices
> Host device passthrough: List eligible device to passthrough
> Host device passthrough: Directly assign and dissmis host device from
> VM
> Host device passthrough: List VMs that are holding a host device
> Host device passthrough: Add unit tests and documents
>
> docs/API.md | 66 ++++++-
> src/kimchi/API.json | 31 +++
> src/kimchi/control/host.py | 7 +
> src/kimchi/control/vm/hostdevs.py | 44 +++++
> src/kimchi/featuretests.py | 10 +-
> src/kimchi/i18n.py | 10 +
> src/kimchi/mockmodel.py | 127 ++++++++++++-
> src/kimchi/model/config.py | 2 +
> src/kimchi/model/host.py | 39 ++--
> src/kimchi/model/hostdev.py | 337 +++++++++++++++++++++++++++++++++
> src/kimchi/model/libvirtstoragepool.py | 18 +-
> src/kimchi/model/vmhostdevs.py | 324 +++++++++++++++++++++++++++++++
> src/kimchi/rollbackcontext.py | 3 +
> src/kimchi/xmlutils.py | 26 ++-
> tests/test_model.py | 31 +++
> tests/test_rest.py | 12 +-
> tests/test_storagepool.py | 7 +-
> 17 files changed, 1042 insertions(+), 52 deletions(-)
> create mode 100644 src/kimchi/control/vm/hostdevs.py
> create mode 100644 src/kimchi/model/hostdev.py
> create mode 100644 src/kimchi/model/vmhostdevs.py
>
More information about the Kimchi-devel
mailing list