1. generally, how many devices will be available?
2. the already attached devices will always be a subset of available
host devices, right?
3. please add support to add multiple devices in one request?
The API design does not match current API style related to vm, please
change it for consistency.
'devices' is just an attribute along with other vm attributes, should
not take a separate url.
Refer to API.md for current vm API design and follow it.
change attribute name 'hostdevs' to 'devices', at vm level, it is just
devices of the vm.
On 7/16/2014 2:33 PM, Zhou Zheng Sheng wrote:
Hi,
As in Kimchi 1.3 TODO list
(
https://github.com/kimchi-project/kimchi/wiki/Todo-1.3), there is a
task of passthrough support. It 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.
The back-end patch also handles PCI device grouping (attach and detach
all devices in the same iommu group together) and provides some other
useful features. Since the due day is near, I think we can come up with
an easy and simple UI for 1.3, and mark this feature as experimental.
Then we improve it in future releases. So in this release we may only
expose PCI devices to user and don't mention the iommu grouping logic.
For this version I think we may provide the following operations to the
user.
In the VM edit window, initially, the user sees a list of PCI devices
already assigned to the VM. This maps to GET vms/VM_NAME/hostdevs.
In edit mode, the user can detach device. This maps to DELETE
vms/VM_NAME/hostdevs/DEVICE_NAME.
The user can also select device to attach to VM from a list. The listing
of eligible devices is mapped to GET
host/devices?_passthrough=true&_cap=pci.
To attach a device, just POST a dict containing only the device name to
vms/VM_NAME/hostdevs.
I think these operations forms a basic interaction to enable user to
consume this feature. It may be feasible to finish them before the due day.