Dear Sanjay, Thank you for your interest.
I did the work as a part of an internship which has already ended, so unfortunately, I no longer have time to continue it. Please feel free to take it and base your work on it. :) Best regards, Pawit On Mon, Sep 30, 2013 at 7:32 PM, Sanjay Tripathi <sanjay.tripa...@citrix.com > wrote: > Hi Pawit, > > It's some nice work that you have done here: > https://reviews.apache.org/r/12098/ . > > I am planning to enable the support of GPU/VGPU in VMWare/XenServer and > started a discussion with the community: > http://apache.markmail.org/message/peusnk6n6iz3tvaz . > In your patch, you have already written a framework for pci-passthrough > and the same design I can leverage for XenServer and VMWare. > > Can you rebase your patch to work with master then we can collaborate to > take it forward. > Let me know if you need any help in rebasing. > > --Sanjay > > > -----Original Message----- > > From: Pawit Pornkitprasan [mailto:p.pa...@gmail.com] > > Sent: Wednesday, June 12, 2013 7:35 AM > > To: dev@cloudstack.apache.org > > Cc: Ryousei Takano; Edison Su; Kelven Yang > > Subject: Re: PCI-Passthrough with CloudStack > > > > On 6/11/13 09:35 PM, "Edison Su" <edison...@citrix.com> wrote: > > > > > If change vm's xml is enough, then how about use libvirt's hook system: > > > http://www.libvirt.org/hooks.html > > > I think, the issue is that, how to let cloudstack only create one VM > > > per KVM host, or few VMs per host(based on the available PCI devices on > > the host). > > > If we think PCI devices are the resource CloudStack should to take > > > care of during the resource allocation, then we need a framework: > > > 1. During host discovering, host can report whatever resources it can > detect > > to mgt server. > > > RAM/CPU freq/local storage are the resources, that currently supported > > > by kvm agent. Here we may need to add PCI devices as another resource. > > > Such as, KVM agent host returns a StartupAuxiliaryDevicesReportCmd > > along as with other startupRouteringcmd/StartStorage*cmd etc, during the > > startup. > > > 2. There will be a listener on the mgt server, which can listen on > > > StartupAuxiliaryDevicesReportCmd, then records available PCI devices > into > > DB, such as host_pci_device_ref table. > > > 3. Need to extend FirstFitAllocator, take PCI devices as another > resource > > during the allocation. > > > And also need to find a place to mark the PCI device as used in > > > host_pci_device_ref table, so the pci device won't be allocated to more > > than one VM. > > > 4. Have api to create a customized computing offering, the offering > > > can contain info about PCI device, such as how many PCI devices plugged > > into a VM. > > > 5. If user chooses above customized computing offering during the VM > > > deployment, then the allocator in step 3 will be triggered, which will > > > choose a KVM host which has enough PCI devices to fulfill the computing > > offering. > > > 6. In the startupcommand, the mgt server send to kvm host, it should > > > contain the PCI devices allocated to this VM. > > > 7. At the KVM agent code, change VM's xml file properly based on the > > startupcommand. > > > How do you think? > > > > I think this is a very good idea. Maybe we can do further generalization > (to > > support Paul's case) by tagging each PCI device with a name, and we can > > store the name inside the compute offering instead of the ID. Then > > management will look up inside host_pci_device_ref and find the ID of a > > suitable PCI device. This would allow multiple VMs to be allocated to one > > host of the host has multiple PCI cards providing the same function. > > > > > > > > > > > > -----Original Message----- > > > > > From: Kelven Yang [mailto:kelven.y...@citrix.com] > > > > > Sent: 11 June 2013 18:10 > > > > > To: dev@cloudstack.apache.org > > > > > Cc: Ryousei Takano > > > > > Subject: Re: PCI-Passthrough with CloudStack > > > > > > > > > > VirtualMachineTO.params is designed to carry generic VM specific > > > > configurations, these configuration parameters can either be > > > > statically linked with the VM or dynamically populated based on other > > factors like this one. > > > > Are you passing PCI ID using VirtualMachineTO.params? > > > > I've created PciTO and pass an array similar to VolumeTO and NicTO. > > This there anything wrong with this approach? > > > > > > > > > > > > Anything that affects VM placement could have impact to > > > > > HA/migration, > > > > we probably need some graceful error-handling in these code paths, > > > > hopefully these have been taken care of. > > > > > > > > > Migration is prevented by libvirt and cloudstack displays "Failed to > migrate > > vm" if the user attempts to migrate a VM. I have not investigated HA yet. >