[Kimchi-devel] [PATCH v8 0/4] Host device passthrough: Summary

Zhou Zheng Sheng zhshzhou at linux.vnet.ibm.com
Mon Jul 28 03:01:08 UTC 2014


Hi,

I rebased the patches and send you the drafts for you to test and
develop. I'll add doc and unit tests, then send a formal v9 patch to
list today.

on 2014/07/25 16:39, Yu Xin Huo wrote:
> Apply failed.
> 
> 
> On 7/21/2014 5:36 PM, Zhou Zheng Sheng wrote:
>> Hi,
>>
>> 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.
>>
>> I'll update API and unit test once everyone is happy with the interface
>> and logic.
>>
>> 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.
>>
>> Zhou Zheng Sheng (4):
>>    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
>>
>>   docs/API.md                            |  11 +-
>>   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                |   7 +-
>>   src/kimchi/model/config.py             |   2 +
>>   src/kimchi/model/host.py               |  38 ++--
>>   src/kimchi/model/hostdev.py            | 311 +++++++++++++++++++++++++++++++
>>   src/kimchi/model/libvirtstoragepool.py |  18 +-
>>   src/kimchi/model/vmhostdevs.py         | 324 +++++++++++++++++++++++++++++++++
>>   src/kimchi/rollbackcontext.py          |   3 +
>>   src/kimchi/xmlutils.py                 |  26 ++-
>>   tests/test_rest.py                     |   6 +-
>>   tests/test_storagepool.py              |   7 +-
>>   15 files changed, 784 insertions(+), 40 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
>>
> 
> 
> 
> _______________________________________________
> Kimchi-devel mailing list
> Kimchi-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
> 


-- 
Zhou Zheng Sheng / 周征晟
E-mail: zhshzhou at linux.vnet.ibm.com
Telephone: 86-10-82454397




More information about the Kimchi-devel mailing list