on 2014/07/21 16:25, Yu Xin Huo worte:
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.
I'm following existing vm/AAA/storages/BBB and vm/AAA/ifaces/DDD style.
I think it's different with other simple attributes since the
passthrough devices form a collection.
Regard for the naming, the reason I didn't use "devices", is because
it's a general term. A device can be a cd rom, a disk, an NIC, a video
card. As you can see, if I use "devices", it's overlapped with many
existing sub-resources and attributes of the VM. I have to do a big
refactor to re-arrange the existing devices, and this topic is debatable
because we already treat every kind of devices specially.
You can consider passthrough devices are a kind of very different
devices. A passthrough network card is very different to a emulated
network card. The passthrough devices also share some common attributes
and features, so we want to manage them together.
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.
>
--
Zhou Zheng Sheng / 周征晟
E-mail: zhshzhou(a)linux.vnet.ibm.com
Telephone: 86-10-82454397