You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Sanjay Tripathi <sa...@citrix.com> on 2014/02/10 07:48:51 UTC
Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for XenServer.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17889/
-----------------------------------------------------------
Review request for cloudstack, Alex Huang, Devdeep Singh, and Koushik Das.
Bugs: CLOUDSTACK-4760 and CLOUDSTACK-4762
https://issues.apache.org/jira/browse/CLOUDSTACK-4760
https://issues.apache.org/jira/browse/CLOUDSTACK-4762
Repository: cloudstack-git
Description
-------
CLOUDSTACK-4760 : Enabling GPU support for XenServer.
CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
This feature is to enable the GPU-passthrough and vGPU functionality,
with the help of this feature, admins/users will be able to leverage
the GPU graphics unit power by deploying a virtul machine with GPU or
vGPU support or by changing the service offering of an existing VM
at any later point of time. There GPU/vGPU enabled VMs are able to run
graphical applications.
For now, this feature is only supported with XenServer hypervisor but
can be extended to add the support of other hypervisors.
Diffs
-----
api/src/com/cloud/agent/api/to/GPUDeviceTO.java PRE-CREATION
api/src/com/cloud/agent/api/to/VirtualMachineTO.java bed3e1d
api/src/com/cloud/gpu/GPU.java PRE-CREATION
api/src/org/apache/cloudstack/api/ApiConstants.java d500303
api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6f9693c
api/src/org/apache/cloudstack/api/response/GpuResponse.java PRE-CREATION
api/src/org/apache/cloudstack/api/response/HostResponse.java e2d8eb5
api/src/org/apache/cloudstack/api/response/UserVmResponse.java 26ecb5b
api/src/org/apache/cloudstack/api/response/VgpuResponse.java PRE-CREATION
core/src/com/cloud/agent/api/GetGPUStatsAnswer.java PRE-CREATION
core/src/com/cloud/agent/api/GetGPUStatsCommand.java PRE-CREATION
core/src/com/cloud/agent/api/StartupRoutingCommand.java 626c87f
core/src/com/cloud/agent/api/StopCommand.java 6a29aa6
engine/components-api/src/com/cloud/resource/ResourceManager.java 95fb385
engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java 8b4433e
engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 08efb83
engine/schema/src/com/cloud/gpu/HostGpuGroupsVO.java PRE-CREATION
engine/schema/src/com/cloud/gpu/VGPUTypesVO.java PRE-CREATION
engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDao.java PRE-CREATION
engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java PRE-CREATION
engine/schema/src/com/cloud/gpu/dao/VGPUTypesDao.java PRE-CREATION
engine/schema/src/com/cloud/gpu/dao/VGPUTypesDaoImpl.java PRE-CREATION
engine/schema/src/com/cloud/host/HostVO.java 56c066b
engine/schema/src/com/cloud/host/dao/HostDaoImpl.java 08a4366
engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java a707955
plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java cf5c6d6
server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java b77f8ac
server/src/com/cloud/api/ApiDBUtils.java a23244b
server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1b95d9b
server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 08478e2
server/src/com/cloud/configuration/ConfigurationManagerImpl.java 49fee93
server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java 3c87b24
server/src/com/cloud/hypervisor/HypervisorGuruBase.java 7fb79fa
server/src/com/cloud/network/NetworkUsageManagerImpl.java e9b0393
server/src/com/cloud/resource/ResourceManagerImpl.java 79eb1cb
server/src/com/cloud/server/ManagementServerImpl.java 2a08ddc
server/src/com/cloud/server/StatsCollector.java 548587c
server/src/com/cloud/storage/VolumeApiServiceImpl.java 252d925
server/src/com/cloud/vm/UserVmManagerImpl.java f6f20cc
server/test/com/cloud/resource/MockResourceManagerImpl.java 5599e8c
server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java 751a3bd
server/test/resources/createNetworkOffering.xml c6228da
setup/db/db/schema-430to440.sql 70f7352
ui/scripts/configuration.js 6adbade
ui/scripts/instances.js 3b1931b
Diff: https://reviews.apache.org/r/17889/diff/
Testing
-------
Tests:
Hosts:
1) Add a XS hosts with GPU cards.
2) Create a pool of XS hosts with GPU cards.
3) Create a pool of XS hosts which are GPU enabled as well which are not enabled.
4) Checke the values in both the tables and verify the no. of GPU cards, remaining capacity etc.
5) Remove a host from a pool and the remaining capacity should get updated properly.
VM:
1) Create a compute offering with GPU/vGPU capability.
2) Deploy HVM OS with this service offering.
3) In case of successful start of VM, remaining capacity should get updated correspondingly.
4) Stop the VM and verify the capacity.
5) Destroy the VM and verify the capacity.
6) If the hosts does not have capacity to deploy a gpu enabled VM, then CS throws the InsufficientServerCapacity exception with proper error message in the logs.
Thanks,
Sanjay Tripathi
Re: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for
XenServer.
Posted by Sanjay Tripathi <sa...@citrix.com>.
> On Feb. 28, 2014, 10:06 a.m., Koushik Das wrote:
> > core/src/com/cloud/agent/api/StopCommand.java, line 27
> > <https://reviews.apache.org/r/17889/diff/3/?file=505671#file505671line27>
> >
> > Shouldn't there be a similar change in StartCommand as well?
For VM deployment, the GPU details are getting passed through VirtualMachineTO, so no need to add anything in StartCommand.
> On Feb. 28, 2014, 10:06 a.m., Koushik Das wrote:
> > engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java, line 1019
> > <https://reviews.apache.org/r/17889/diff/3/?file=505673#file505673line1019>
> >
> > What happens if there is an exception while updating GPU capacity? Will the startVM fail and the vm cleaned up?
StartVM will not fail in case of exception while updating GPU capacity. Capacity update is a separate task and MS should not fail the startVM in case of update failure.
Also, to update GPU capacity, there is a separate thread runs per minute to update the capacity count.
> On Feb. 28, 2014, 10:06 a.m., Koushik Das wrote:
> > core/src/com/cloud/agent/api/StartupRoutingCommand.java, line 253
> > <https://reviews.apache.org/r/17889/diff/3/?file=505670#file505670line253>
> >
> > This is not required, use getGpuGroupDetails() instead
When MS adds the host first time, this setGpuGroupDetails method fills the hostInfo with GPU group details; this setter method use the getGpuGroupDetails internally to get the GPU details.
So, in back we have the getGpuGroupDetails method but I think we need some setter method to set this GPU details in startupRoutingCommand.
> On Feb. 28, 2014, 10:06 a.m., Koushik Das wrote:
> > engine/components-api/src/com/cloud/resource/ResourceManager.java, line 158
> > <https://reviews.apache.org/r/17889/diff/3/?file=505672#file505672line158>
> >
> > getGPUDevice() and listAvailableGPUDevice() - The name says GPUDevice but one return a single GPUDeviceTO and another returns a list of HostGpuGroupsVO. Can we have better names if these are indeed different things?
> >
> > Also instead of GPUDeviceTO, should it be a VO?
The method like getGPUDevice(), isGPUDeviceAvailable() are using listAvailableGPUDevice method to get the GPU related info.
Here, getGPUDevice is returing GPUDeviceTO which is getting passed to VirtualMachineTO.
If you think the method names are not as per there task, i'll think of some better name and change it later.
- Sanjay
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17889/#review35770
-----------------------------------------------------------
On Feb. 27, 2014, 12:35 p.m., Sanjay Tripathi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17889/
> -----------------------------------------------------------
>
> (Updated Feb. 27, 2014, 12:35 p.m.)
>
>
> Review request for cloudstack, Alex Huang, Devdeep Singh, and Koushik Das.
>
>
> Bugs: CLOUDSTACK-4760 and CLOUDSTACK-4762
> https://issues.apache.org/jira/browse/CLOUDSTACK-4760
> https://issues.apache.org/jira/browse/CLOUDSTACK-4762
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> CLOUDSTACK-4760 : Enabling GPU support for XenServer.
> CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
>
> This feature is to enable the GPU-passthrough and vGPU functionality,
> with the help of this feature, admins/users will be able to leverage
> the GPU graphics unit power by deploying a virtul machine with GPU or
> vGPU support or by changing the service offering of an existing VM
> at any later point of time. There GPU/vGPU enabled VMs are able to run
> graphical applications.
> For now, this feature is only supported with XenServer hypervisor but
> can be extended to add the support of other hypervisors.
>
>
> Diffs
> -----
>
> api/src/com/cloud/agent/api/to/GPUDeviceTO.java PRE-CREATION
> api/src/com/cloud/agent/api/to/VirtualMachineTO.java bed3e1d
> api/src/com/cloud/gpu/GPU.java PRE-CREATION
> api/src/org/apache/cloudstack/api/ApiConstants.java 7b7f9ca
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 1d8cbff
> api/src/org/apache/cloudstack/api/response/GpuResponse.java PRE-CREATION
> api/src/org/apache/cloudstack/api/response/HostResponse.java e2d8eb5
> api/src/org/apache/cloudstack/api/response/UserVmResponse.java 84d532b
> api/src/org/apache/cloudstack/api/response/VgpuResponse.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsAnswer.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsCommand.java PRE-CREATION
> core/src/com/cloud/agent/api/StartupRoutingCommand.java 626c87f
> core/src/com/cloud/agent/api/StopCommand.java 6a29aa6
> engine/components-api/src/com/cloud/resource/ResourceManager.java 95fb385
> engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java d19fc38
> engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 08efb83
> engine/schema/src/com/cloud/gpu/HostGpuGroupsVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/VGPUTypesVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/host/HostVO.java 56c066b
> engine/schema/src/com/cloud/host/dao/HostDaoImpl.java 08a4366
> engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java e1a1e93
> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java 48ae3ea
> server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java b77f8ac
> server/src/com/cloud/api/ApiDBUtils.java a23244b
> server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1b95d9b
> server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 08478e2
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 1c1da1f
> server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java 3c87b24
> server/src/com/cloud/hypervisor/HypervisorGuruBase.java 7fb79fa
> server/src/com/cloud/network/NetworkUsageManagerImpl.java e9b0393
> server/src/com/cloud/resource/ResourceManagerImpl.java adad85c
> server/src/com/cloud/server/ManagementServerImpl.java 2a08ddc
> server/src/com/cloud/server/StatsCollector.java 548587c
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c95d316
> server/src/com/cloud/vm/UserVmManagerImpl.java 97e3ae7
> server/test/com/cloud/resource/MockResourceManagerImpl.java 5599e8c
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java 751a3bd
> server/test/resources/createNetworkOffering.xml c6228da
> setup/db/db/schema-430to440.sql 0ded7a9
> test/integration/smoke/test_deploy_vgpu_enabled_vm.py PRE-CREATION
> tools/marvin/marvin/integration/lib/base.py 0a7ad94
> ui/scripts/configuration.js 869b876
> ui/scripts/instances.js 53c9e98
>
> Diff: https://reviews.apache.org/r/17889/diff/
>
>
> Testing
> -------
>
> Tests:
>
> Hosts:
> 1) Add a XS hosts with GPU cards.
> 2) Create a pool of XS hosts with GPU cards.
> 3) Create a pool of XS hosts which are GPU enabled as well which are not enabled.
> 4) Checke the values in both the tables and verify the no. of GPU cards, remaining capacity etc.
> 5) Remove a host from a pool and the remaining capacity should get updated properly.
>
> VM:
> 1) Create a compute offering with GPU/vGPU capability.
> 2) Deploy HVM OS with this service offering.
> 3) In case of successful start of VM, remaining capacity should get updated correspondingly.
> 4) Stop the VM and verify the capacity.
> 5) Destroy the VM and verify the capacity.
> 6) If the hosts does not have capacity to deploy a gpu enabled VM, then CS throws the InsufficientServerCapacity exception with proper error message in the logs.
>
>
> Thanks,
>
> Sanjay Tripathi
>
>
Re: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for
XenServer.
Posted by Koushik Das <ko...@citrix.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17889/#review35770
-----------------------------------------------------------
api/src/com/cloud/agent/api/to/GPUDeviceTO.java
<https://reviews.apache.org/r/17889/#comment66508>
Don't pass HashMap like this, use the getGroupDetails() instead.
api/src/com/cloud/agent/api/to/GPUDeviceTO.java
<https://reviews.apache.org/r/17889/#comment66509>
There is no need for this method for HashMap
api/src/org/apache/cloudstack/api/response/GpuResponse.java
<https://reviews.apache.org/r/17889/#comment66510>
What is this about?
core/src/com/cloud/agent/api/StartupRoutingCommand.java
<https://reviews.apache.org/r/17889/#comment66511>
This is not required, use getGpuGroupDetails() instead
core/src/com/cloud/agent/api/StopCommand.java
<https://reviews.apache.org/r/17889/#comment66512>
Shouldn't there be a similar change in StartCommand as well?
engine/components-api/src/com/cloud/resource/ResourceManager.java
<https://reviews.apache.org/r/17889/#comment66513>
getGPUDevice() and listAvailableGPUDevice() - The name says GPUDevice but one return a single GPUDeviceTO and another returns a list of HostGpuGroupsVO. Can we have better names if these are indeed different things?
Also instead of GPUDeviceTO, should it be a VO?
engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
<https://reviews.apache.org/r/17889/#comment66514>
What happens if there is an exception while updating GPU capacity? Will the startVM fail and the vm cleaned up?
engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
<https://reviews.apache.org/r/17889/#comment66515>
Same comments as in orchestrateStart()
- Koushik Das
On Feb. 27, 2014, 12:35 p.m., Sanjay Tripathi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17889/
> -----------------------------------------------------------
>
> (Updated Feb. 27, 2014, 12:35 p.m.)
>
>
> Review request for cloudstack, Alex Huang, Devdeep Singh, and Koushik Das.
>
>
> Bugs: CLOUDSTACK-4760 and CLOUDSTACK-4762
> https://issues.apache.org/jira/browse/CLOUDSTACK-4760
> https://issues.apache.org/jira/browse/CLOUDSTACK-4762
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> CLOUDSTACK-4760 : Enabling GPU support for XenServer.
> CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
>
> This feature is to enable the GPU-passthrough and vGPU functionality,
> with the help of this feature, admins/users will be able to leverage
> the GPU graphics unit power by deploying a virtul machine with GPU or
> vGPU support or by changing the service offering of an existing VM
> at any later point of time. There GPU/vGPU enabled VMs are able to run
> graphical applications.
> For now, this feature is only supported with XenServer hypervisor but
> can be extended to add the support of other hypervisors.
>
>
> Diffs
> -----
>
> api/src/com/cloud/agent/api/to/GPUDeviceTO.java PRE-CREATION
> api/src/com/cloud/agent/api/to/VirtualMachineTO.java bed3e1d
> api/src/com/cloud/gpu/GPU.java PRE-CREATION
> api/src/org/apache/cloudstack/api/ApiConstants.java 7b7f9ca
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 1d8cbff
> api/src/org/apache/cloudstack/api/response/GpuResponse.java PRE-CREATION
> api/src/org/apache/cloudstack/api/response/HostResponse.java e2d8eb5
> api/src/org/apache/cloudstack/api/response/UserVmResponse.java 84d532b
> api/src/org/apache/cloudstack/api/response/VgpuResponse.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsAnswer.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsCommand.java PRE-CREATION
> core/src/com/cloud/agent/api/StartupRoutingCommand.java 626c87f
> core/src/com/cloud/agent/api/StopCommand.java 6a29aa6
> engine/components-api/src/com/cloud/resource/ResourceManager.java 95fb385
> engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java d19fc38
> engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 08efb83
> engine/schema/src/com/cloud/gpu/HostGpuGroupsVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/VGPUTypesVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/host/HostVO.java 56c066b
> engine/schema/src/com/cloud/host/dao/HostDaoImpl.java 08a4366
> engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java e1a1e93
> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java 48ae3ea
> server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java b77f8ac
> server/src/com/cloud/api/ApiDBUtils.java a23244b
> server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1b95d9b
> server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 08478e2
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 1c1da1f
> server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java 3c87b24
> server/src/com/cloud/hypervisor/HypervisorGuruBase.java 7fb79fa
> server/src/com/cloud/network/NetworkUsageManagerImpl.java e9b0393
> server/src/com/cloud/resource/ResourceManagerImpl.java adad85c
> server/src/com/cloud/server/ManagementServerImpl.java 2a08ddc
> server/src/com/cloud/server/StatsCollector.java 548587c
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c95d316
> server/src/com/cloud/vm/UserVmManagerImpl.java 97e3ae7
> server/test/com/cloud/resource/MockResourceManagerImpl.java 5599e8c
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java 751a3bd
> server/test/resources/createNetworkOffering.xml c6228da
> setup/db/db/schema-430to440.sql 0ded7a9
> test/integration/smoke/test_deploy_vgpu_enabled_vm.py PRE-CREATION
> tools/marvin/marvin/integration/lib/base.py 0a7ad94
> ui/scripts/configuration.js 869b876
> ui/scripts/instances.js 53c9e98
>
> Diff: https://reviews.apache.org/r/17889/diff/
>
>
> Testing
> -------
>
> Tests:
>
> Hosts:
> 1) Add a XS hosts with GPU cards.
> 2) Create a pool of XS hosts with GPU cards.
> 3) Create a pool of XS hosts which are GPU enabled as well which are not enabled.
> 4) Checke the values in both the tables and verify the no. of GPU cards, remaining capacity etc.
> 5) Remove a host from a pool and the remaining capacity should get updated properly.
>
> VM:
> 1) Create a compute offering with GPU/vGPU capability.
> 2) Deploy HVM OS with this service offering.
> 3) In case of successful start of VM, remaining capacity should get updated correspondingly.
> 4) Stop the VM and verify the capacity.
> 5) Destroy the VM and verify the capacity.
> 6) If the hosts does not have capacity to deploy a gpu enabled VM, then CS throws the InsufficientServerCapacity exception with proper error message in the logs.
>
>
> Thanks,
>
> Sanjay Tripathi
>
>
Re: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for
XenServer.
Posted by Devdeep Singh <de...@citrix.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17889/#review36759
-----------------------------------------------------------
Ship it!
Ship It!
- Devdeep Singh
On Feb. 27, 2014, 12:35 p.m., Sanjay Tripathi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17889/
> -----------------------------------------------------------
>
> (Updated Feb. 27, 2014, 12:35 p.m.)
>
>
> Review request for cloudstack, Alex Huang, Devdeep Singh, and Koushik Das.
>
>
> Bugs: CLOUDSTACK-4760 and CLOUDSTACK-4762
> https://issues.apache.org/jira/browse/CLOUDSTACK-4760
> https://issues.apache.org/jira/browse/CLOUDSTACK-4762
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> CLOUDSTACK-4760 : Enabling GPU support for XenServer.
> CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
>
> This feature is to enable the GPU-passthrough and vGPU functionality,
> with the help of this feature, admins/users will be able to leverage
> the GPU graphics unit power by deploying a virtul machine with GPU or
> vGPU support or by changing the service offering of an existing VM
> at any later point of time. There GPU/vGPU enabled VMs are able to run
> graphical applications.
> For now, this feature is only supported with XenServer hypervisor but
> can be extended to add the support of other hypervisors.
>
>
> Diffs
> -----
>
> api/src/com/cloud/agent/api/to/GPUDeviceTO.java PRE-CREATION
> api/src/com/cloud/agent/api/to/VirtualMachineTO.java bed3e1d
> api/src/com/cloud/gpu/GPU.java PRE-CREATION
> api/src/org/apache/cloudstack/api/ApiConstants.java 7b7f9ca
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 1d8cbff
> api/src/org/apache/cloudstack/api/response/GpuResponse.java PRE-CREATION
> api/src/org/apache/cloudstack/api/response/HostResponse.java e2d8eb5
> api/src/org/apache/cloudstack/api/response/UserVmResponse.java 84d532b
> api/src/org/apache/cloudstack/api/response/VgpuResponse.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsAnswer.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsCommand.java PRE-CREATION
> core/src/com/cloud/agent/api/StartupRoutingCommand.java 626c87f
> core/src/com/cloud/agent/api/StopCommand.java 6a29aa6
> engine/components-api/src/com/cloud/resource/ResourceManager.java 95fb385
> engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java d19fc38
> engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 08efb83
> engine/schema/src/com/cloud/gpu/HostGpuGroupsVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/VGPUTypesVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/host/HostVO.java 56c066b
> engine/schema/src/com/cloud/host/dao/HostDaoImpl.java 08a4366
> engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java e1a1e93
> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java 48ae3ea
> server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java b77f8ac
> server/src/com/cloud/api/ApiDBUtils.java a23244b
> server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1b95d9b
> server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 08478e2
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 1c1da1f
> server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java 3c87b24
> server/src/com/cloud/hypervisor/HypervisorGuruBase.java 7fb79fa
> server/src/com/cloud/network/NetworkUsageManagerImpl.java e9b0393
> server/src/com/cloud/resource/ResourceManagerImpl.java adad85c
> server/src/com/cloud/server/ManagementServerImpl.java 2a08ddc
> server/src/com/cloud/server/StatsCollector.java 548587c
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c95d316
> server/src/com/cloud/vm/UserVmManagerImpl.java 97e3ae7
> server/test/com/cloud/resource/MockResourceManagerImpl.java 5599e8c
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java 751a3bd
> server/test/resources/createNetworkOffering.xml c6228da
> setup/db/db/schema-430to440.sql 0ded7a9
> test/integration/smoke/test_deploy_vgpu_enabled_vm.py PRE-CREATION
> tools/marvin/marvin/integration/lib/base.py 0a7ad94
> ui/scripts/configuration.js 869b876
> ui/scripts/instances.js 53c9e98
>
> Diff: https://reviews.apache.org/r/17889/diff/
>
>
> Testing
> -------
>
> Tests:
>
> Hosts:
> 1) Add a XS hosts with GPU cards.
> 2) Create a pool of XS hosts with GPU cards.
> 3) Create a pool of XS hosts which are GPU enabled as well which are not enabled.
> 4) Checke the values in both the tables and verify the no. of GPU cards, remaining capacity etc.
> 5) Remove a host from a pool and the remaining capacity should get updated properly.
>
> VM:
> 1) Create a compute offering with GPU/vGPU capability.
> 2) Deploy HVM OS with this service offering.
> 3) In case of successful start of VM, remaining capacity should get updated correspondingly.
> 4) Stop the VM and verify the capacity.
> 5) Destroy the VM and verify the capacity.
> 6) If the hosts does not have capacity to deploy a gpu enabled VM, then CS throws the InsufficientServerCapacity exception with proper error message in the logs.
>
>
> Thanks,
>
> Sanjay Tripathi
>
>
Re: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for
XenServer.
Posted by Sanjay Tripathi <sa...@citrix.com>.
> On Feb. 28, 2014, 8:46 a.m., Devdeep Singh wrote:
> > api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java, line 195
> > <https://reviews.apache.org/r/17889/diff/3/?file=505663#file505663line195>
> >
> > Why did you change the function? Was it that only the first key value was being passed?
That's right Devdeep, the existing method is only passing the fisrt key-value pair and neglecting the others which i changed to pass all the key-value pairs in the details parameter.
> On Feb. 28, 2014, 8:46 a.m., Devdeep Singh wrote:
> > core/src/com/cloud/agent/api/GetGPUStatsAnswer.java, line 1
> > <https://reviews.apache.org/r/17889/diff/3/?file=505668#file505668line1>
> >
> > The license header is different from other files; namely no space after the comment starts. Does it pass RAT?
All the new files are passing RAT tests successfully including this one.
> On Feb. 28, 2014, 8:46 a.m., Devdeep Singh wrote:
> > ui/scripts/configuration.js, line 389
> > <https://reviews.apache.org/r/17889/diff/3/?file=505704#file505704line389>
> >
> > Shouldn't the details index begin with 0? That is, when dedication mode is not passed, then the details index should begin with 0.
For that multiple if else statement will be needed, i'll talk to other UI developers and fix it later if it is needed, as it would be a minor change.
- Sanjay
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17889/#review35769
-----------------------------------------------------------
On Feb. 27, 2014, 12:35 p.m., Sanjay Tripathi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17889/
> -----------------------------------------------------------
>
> (Updated Feb. 27, 2014, 12:35 p.m.)
>
>
> Review request for cloudstack, Alex Huang, Devdeep Singh, and Koushik Das.
>
>
> Bugs: CLOUDSTACK-4760 and CLOUDSTACK-4762
> https://issues.apache.org/jira/browse/CLOUDSTACK-4760
> https://issues.apache.org/jira/browse/CLOUDSTACK-4762
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> CLOUDSTACK-4760 : Enabling GPU support for XenServer.
> CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
>
> This feature is to enable the GPU-passthrough and vGPU functionality,
> with the help of this feature, admins/users will be able to leverage
> the GPU graphics unit power by deploying a virtul machine with GPU or
> vGPU support or by changing the service offering of an existing VM
> at any later point of time. There GPU/vGPU enabled VMs are able to run
> graphical applications.
> For now, this feature is only supported with XenServer hypervisor but
> can be extended to add the support of other hypervisors.
>
>
> Diffs
> -----
>
> api/src/com/cloud/agent/api/to/GPUDeviceTO.java PRE-CREATION
> api/src/com/cloud/agent/api/to/VirtualMachineTO.java bed3e1d
> api/src/com/cloud/gpu/GPU.java PRE-CREATION
> api/src/org/apache/cloudstack/api/ApiConstants.java 7b7f9ca
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 1d8cbff
> api/src/org/apache/cloudstack/api/response/GpuResponse.java PRE-CREATION
> api/src/org/apache/cloudstack/api/response/HostResponse.java e2d8eb5
> api/src/org/apache/cloudstack/api/response/UserVmResponse.java 84d532b
> api/src/org/apache/cloudstack/api/response/VgpuResponse.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsAnswer.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsCommand.java PRE-CREATION
> core/src/com/cloud/agent/api/StartupRoutingCommand.java 626c87f
> core/src/com/cloud/agent/api/StopCommand.java 6a29aa6
> engine/components-api/src/com/cloud/resource/ResourceManager.java 95fb385
> engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java d19fc38
> engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 08efb83
> engine/schema/src/com/cloud/gpu/HostGpuGroupsVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/VGPUTypesVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/host/HostVO.java 56c066b
> engine/schema/src/com/cloud/host/dao/HostDaoImpl.java 08a4366
> engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java e1a1e93
> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java 48ae3ea
> server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java b77f8ac
> server/src/com/cloud/api/ApiDBUtils.java a23244b
> server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1b95d9b
> server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 08478e2
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 1c1da1f
> server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java 3c87b24
> server/src/com/cloud/hypervisor/HypervisorGuruBase.java 7fb79fa
> server/src/com/cloud/network/NetworkUsageManagerImpl.java e9b0393
> server/src/com/cloud/resource/ResourceManagerImpl.java adad85c
> server/src/com/cloud/server/ManagementServerImpl.java 2a08ddc
> server/src/com/cloud/server/StatsCollector.java 548587c
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c95d316
> server/src/com/cloud/vm/UserVmManagerImpl.java 97e3ae7
> server/test/com/cloud/resource/MockResourceManagerImpl.java 5599e8c
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java 751a3bd
> server/test/resources/createNetworkOffering.xml c6228da
> setup/db/db/schema-430to440.sql 0ded7a9
> test/integration/smoke/test_deploy_vgpu_enabled_vm.py PRE-CREATION
> tools/marvin/marvin/integration/lib/base.py 0a7ad94
> ui/scripts/configuration.js 869b876
> ui/scripts/instances.js 53c9e98
>
> Diff: https://reviews.apache.org/r/17889/diff/
>
>
> Testing
> -------
>
> Tests:
>
> Hosts:
> 1) Add a XS hosts with GPU cards.
> 2) Create a pool of XS hosts with GPU cards.
> 3) Create a pool of XS hosts which are GPU enabled as well which are not enabled.
> 4) Checke the values in both the tables and verify the no. of GPU cards, remaining capacity etc.
> 5) Remove a host from a pool and the remaining capacity should get updated properly.
>
> VM:
> 1) Create a compute offering with GPU/vGPU capability.
> 2) Deploy HVM OS with this service offering.
> 3) In case of successful start of VM, remaining capacity should get updated correspondingly.
> 4) Stop the VM and verify the capacity.
> 5) Destroy the VM and verify the capacity.
> 6) If the hosts does not have capacity to deploy a gpu enabled VM, then CS throws the InsufficientServerCapacity exception with proper error message in the logs.
>
>
> Thanks,
>
> Sanjay Tripathi
>
>
Re: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for
XenServer.
Posted by Devdeep Singh <de...@citrix.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17889/#review35769
-----------------------------------------------------------
api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java
<https://reviews.apache.org/r/17889/#comment66505>
Why did you change the function? Was it that only the first key value was being passed?
core/src/com/cloud/agent/api/GetGPUStatsAnswer.java
<https://reviews.apache.org/r/17889/#comment66506>
The license header is different from other files; namely no space after the comment starts. Does it pass RAT?
ui/scripts/configuration.js
<https://reviews.apache.org/r/17889/#comment66507>
Shouldn't the details index begin with 0? That is, when dedication mode is not passed, then the details index should begin with 0.
- Devdeep Singh
On Feb. 27, 2014, 12:35 p.m., Sanjay Tripathi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17889/
> -----------------------------------------------------------
>
> (Updated Feb. 27, 2014, 12:35 p.m.)
>
>
> Review request for cloudstack, Alex Huang, Devdeep Singh, and Koushik Das.
>
>
> Bugs: CLOUDSTACK-4760 and CLOUDSTACK-4762
> https://issues.apache.org/jira/browse/CLOUDSTACK-4760
> https://issues.apache.org/jira/browse/CLOUDSTACK-4762
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> CLOUDSTACK-4760 : Enabling GPU support for XenServer.
> CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
>
> This feature is to enable the GPU-passthrough and vGPU functionality,
> with the help of this feature, admins/users will be able to leverage
> the GPU graphics unit power by deploying a virtul machine with GPU or
> vGPU support or by changing the service offering of an existing VM
> at any later point of time. There GPU/vGPU enabled VMs are able to run
> graphical applications.
> For now, this feature is only supported with XenServer hypervisor but
> can be extended to add the support of other hypervisors.
>
>
> Diffs
> -----
>
> api/src/com/cloud/agent/api/to/GPUDeviceTO.java PRE-CREATION
> api/src/com/cloud/agent/api/to/VirtualMachineTO.java bed3e1d
> api/src/com/cloud/gpu/GPU.java PRE-CREATION
> api/src/org/apache/cloudstack/api/ApiConstants.java 7b7f9ca
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 1d8cbff
> api/src/org/apache/cloudstack/api/response/GpuResponse.java PRE-CREATION
> api/src/org/apache/cloudstack/api/response/HostResponse.java e2d8eb5
> api/src/org/apache/cloudstack/api/response/UserVmResponse.java 84d532b
> api/src/org/apache/cloudstack/api/response/VgpuResponse.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsAnswer.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsCommand.java PRE-CREATION
> core/src/com/cloud/agent/api/StartupRoutingCommand.java 626c87f
> core/src/com/cloud/agent/api/StopCommand.java 6a29aa6
> engine/components-api/src/com/cloud/resource/ResourceManager.java 95fb385
> engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java d19fc38
> engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 08efb83
> engine/schema/src/com/cloud/gpu/HostGpuGroupsVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/VGPUTypesVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/host/HostVO.java 56c066b
> engine/schema/src/com/cloud/host/dao/HostDaoImpl.java 08a4366
> engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java e1a1e93
> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java 48ae3ea
> server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java b77f8ac
> server/src/com/cloud/api/ApiDBUtils.java a23244b
> server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1b95d9b
> server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 08478e2
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 1c1da1f
> server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java 3c87b24
> server/src/com/cloud/hypervisor/HypervisorGuruBase.java 7fb79fa
> server/src/com/cloud/network/NetworkUsageManagerImpl.java e9b0393
> server/src/com/cloud/resource/ResourceManagerImpl.java adad85c
> server/src/com/cloud/server/ManagementServerImpl.java 2a08ddc
> server/src/com/cloud/server/StatsCollector.java 548587c
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c95d316
> server/src/com/cloud/vm/UserVmManagerImpl.java 97e3ae7
> server/test/com/cloud/resource/MockResourceManagerImpl.java 5599e8c
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java 751a3bd
> server/test/resources/createNetworkOffering.xml c6228da
> setup/db/db/schema-430to440.sql 0ded7a9
> test/integration/smoke/test_deploy_vgpu_enabled_vm.py PRE-CREATION
> tools/marvin/marvin/integration/lib/base.py 0a7ad94
> ui/scripts/configuration.js 869b876
> ui/scripts/instances.js 53c9e98
>
> Diff: https://reviews.apache.org/r/17889/diff/
>
>
> Testing
> -------
>
> Tests:
>
> Hosts:
> 1) Add a XS hosts with GPU cards.
> 2) Create a pool of XS hosts with GPU cards.
> 3) Create a pool of XS hosts which are GPU enabled as well which are not enabled.
> 4) Checke the values in both the tables and verify the no. of GPU cards, remaining capacity etc.
> 5) Remove a host from a pool and the remaining capacity should get updated properly.
>
> VM:
> 1) Create a compute offering with GPU/vGPU capability.
> 2) Deploy HVM OS with this service offering.
> 3) In case of successful start of VM, remaining capacity should get updated correspondingly.
> 4) Stop the VM and verify the capacity.
> 5) Destroy the VM and verify the capacity.
> 6) If the hosts does not have capacity to deploy a gpu enabled VM, then CS throws the InsufficientServerCapacity exception with proper error message in the logs.
>
>
> Thanks,
>
> Sanjay Tripathi
>
>
RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support
for XenServer.
Posted by Stephen Turner <St...@citrix.com>.
I believe XenServer exposes everything you need in the VGPU_type class:
# xe vgpu-type-list params=all
uuid ( RO) : 6e175f2c-e8f1-2dce-aadf-8a8962b6f0e8
vendor-name ( RO): NVIDIA Corporation
model-name ( RO): GRID K260Q
framebuffer-size ( RO): 2013265920
max-heads ( RO): 4
max-resolution ( RO): 2560x1600
supported-on-PGPUs ( RO): b3fcca33-5fd6-9c44-70ac-c873f967d152; 8a436468-546b-ae69-2ab5-4e1d66d1a0eb; 37fbb55a-edf6-1aff-b80c-4f45ad46fc58; 6be9966b-f8bd-157a-5274-e927e57c28dd
enabled-on-PGPUs ( RO): b3fcca33-5fd6-9c44-70ac-c873f967d152; 8a436468-546b-ae69-2ab5-4e1d66d1a0eb; 37fbb55a-edf6-1aff-b80c-4f45ad46fc58; 6be9966b-f8bd-157a-5274-e927e57c28dd
supported-on-GPU-groups ( RO): 41c93ffe-23fe-2c50-674e-a8640e53b64f
enabled-on-GPU-groups ( RO): 41c93ffe-23fe-2c50-674e-a8640e53b64f
VGPU-uuids ( RO):
framebuffer-size is the video RAM.
The number of vGPUs of a particularly type that can be supported on a pGPU (the fraction of the GPU you get, if you like to think of it that way), is in the GPU class as supported_VGPU_max_capacities.
XenCenter has none of this knowledge hard coded, so anything visible in XenCenter comes from XenServer over the XenAPI.
--
Stephen Turner
-----Original Message-----
From: Ram Ganesh [mailto:Ram.Ganesh@citrix.com]
Sent: 13 March 2014 09:55
To: dev@cloudstack.apache.org
Cc: Sanjay Tripathi; Sateesh Chodapuneedi
Subject: RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for XenServer.
If we look at [1] section "Interoperability and compatibility requirements" each of the cards supports certain profiles which has underpinning to Video RAM it supports, no of vGPUs that can be supported on one physical GPU. These mapping are maintained in CS. This mapping is required for the planner to pick a host which has the required resources to deploy a VM. Currently XenServer does not expose the Video RAM that each profile supports. Once we have that and all other loose ends around resources available vs used are taken care of then we can try to dynamically learn the lists from the hosts.
[1] https://cwiki.apache.org/confluence/display/CLOUDSTACK/GPU+and+vGPU+support+for+CloudStack+Guest+VMs
RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support
for XenServer.
Posted by Ram Ganesh <Ra...@citrix.com>.
> > Thanks for your reply, Sanjay. I understand that it's only K1 and K2 cards at the moment, but when they add more, do we really want to have
> > to edit the code to match? What is the notification process by which we know there are new types? Does the user have to upgrade CloudStack
> > to get access to the new types? In contrast, if we could use the current list from the server, we don't have to worry about it: it will
> > just keep itself up to date.
If we look at [1] section "Interoperability and compatibility requirements" each of the cards supports certain profiles which has underpinning to Video RAM it supports, no of vGPUs that can be supported on one physical GPU. These mapping are maintained in CS. This mapping is required for the planner to pick a host which has the required resources to deploy a VM. Currently XenServer does not expose the Video RAM that each profile supports. Once we have that and all other loose ends around resources available vs used are taken care of then we can try to dynamically learn the lists from the hosts.
[1] https://cwiki.apache.org/confluence/display/CLOUDSTACK/GPU+and+vGPU+support+for+CloudStack+Guest+VMs
> You can take a somewhat similar view on the vmware disk controller issue (cloudstack-4787 iirc) , where it is hard coded what to use, and changing it to
> ui based has taken a couple of versions and is still not fixed. Which is why I would vote against any hard coded value that could and should either be
> dynamic or user specified.
Sateesh and I had some good discussions around this. I am sure this will surface as a proposal very soon.
Thanks,
RamG
> -----Original Message-----
> From: Erik Weber [mailto:terbolous@gmail.com]
> Sent: 12 March 2014 21:16
> To: dev
> Subject: RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU
> support for XenServer.
>
> Anything that's hard coded is potentially a problem to change for a user.
>
> You can take a somewhat similar view on the vmware disk controller issue
> (cloudstack-4787 iirc) , where it is hard coded what to use, and changing it to
> ui based has taken a couple of versions and is still not fixed. Which is why i
> would vote against any hard coded value that could and should either be
> dynamic or user specified.
>
> Regards,
> Erik Weber
> 12. mars 2014 16:24 skrev "Stephen Turner" <St...@citrix.com>
> følgende:
>
> > Does anyone else have a view on this? I'm not familiar with the code
> > base yet, so am I worrying about nothing?
> >
> > --
> > Stephen Turner
> >
> >
> > -----Original Message-----
> > From: Stephen Turner [mailto:Stephen.Turner@citrix.com]
> > Sent: 11 March 2014 16:13
> > To: dev@cloudstack.apache.org
> > Cc: Sanjay Tripathi
> > Subject: RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU
> > support for XenServer.
> >
> > Thanks for your reply, Sanjay. I understand that it's only K1 and K2
> > cards at the moment, but when they add more, do we really want to have
> > to edit the code to match? What is the notification process by which
> > we know there are new types? Does the user have to upgrade CloudStack
> > to get access to the new types? In contrast, if we could use the
> > current list from the server, we don't have to worry about it: it will
> > just keep itself up to date.
> >
> > --
> > Stephen Turner
> >
> >
> > -----Original Message-----
> > From: Sanjay Tripathi
> > Sent: 11 March 2014 16:05
> > To: Stephen Turner; dev@cloudstack.apache.org
> > Subject: RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU
> > support for XenServer.
> >
> > Hi Stephen,
> >
> > As of now, there are 2 GPU cards available in market i.e. NVIDIA GRID
> > K1 and K2 cards. These card supports 5 different configurations of
> > vGPUs which we call as vGPU types (for details:
> > http://www.nvidia.com/object/virtual-gpus.html). In future, if this
> > list grows, then we'll add a separate table similar to guest_os table,
> > which will have the list of supported vGPU types.
> >
> > Also, the table "vgpu_types" has the entries of different vGPU types
> > supported in hosts managed by CloudStack.
> >
> > --Sanjay
> >
> > -----Original Message-----
> > From: Stephen Turner
> > Sent: Tuesday, March 11, 2014 5:54 PM
> > To: dev@cloudstack.apache.org
> > Cc: Sanjay Tripathi
> > Subject: RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU
> > support for XenServer.
> >
> > I see that the change has been pushed already, but I'm a bit concerned
> > about there being a hard-coded list of vGPU types in the class GPU. I
> > anticipate that Nvidia or other vendors will add more vGPU types
> > later, and this will require us to keep up with the list. Is there a
> > way we can use the list of vGPU types returned from the servers instead?
> >
> > --
> > Stephen Turner
> >
> >
> >
> > -----Original Message-----
> > From: ASF Subversion and Git Services
> > [mailto:noreply@reviews.apache.org]
> > On Behalf Of ASF Subversion and Git Services
> > Sent: 11 March 2014 10:10
> > To: Koushik Das; Devdeep Singh; Alex Huang
> > Cc: Sanjay Tripathi; ASF Subversion and Git Services; cloudstack
> > Subject: Re: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU
> > support for XenServer.
> >
> >
> > -----------------------------------------------------------
> > This is an automatically generated e-mail. To reply, visit:
> > https://reviews.apache.org/r/17889/#review36769
> > -----------------------------------------------------------
> >
> >
> > Commit c7d31fe288b13ff4f0f046f83f9eb4a9c2bf06c5 in cloudstack's branch
> > refs/heads/master from Sanjay Tripathi [
> > https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=c7d31fe ]
> >
> > CLOUDSTACK-4760 : Enabling GPU support for XenServer.
> > CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
> >
> > This feature is to enable the GPU-passthrough and vGPU functionality,
> > with the help of this feature, admins/users will be able to leverage
> > the GPU graphics unit power by deploying a virtul machine with GPU or
> > vGPU support or by changing the service offering of an existing VM at
> > any later point of time. There GPU/vGPU enabled VMs are able to run
> graphical applications.
> > For now, this feature is only supported with XenServer hypervisor but
> > can be extended to add the support of other hypervisors.
> >
> >
> > - ASF Subversion and Git Services
> >
> >
> > On Feb. 27, 2014, 12:35 p.m., Sanjay Tripathi wrote:
> > >
> > > -----------------------------------------------------------
> > > This is an automatically generated e-mail. To reply, visit:
> > > https://reviews.apache.org/r/17889/
> > > -----------------------------------------------------------
> > >
> > > (Updated Feb. 27, 2014, 12:35 p.m.)
> > >
> > >
> > > Review request for cloudstack, Alex Huang, Devdeep Singh, and
> > > Koushik
> > Das.
> > >
> > >
> > > Bugs: CLOUDSTACK-4760 and CLOUDSTACK-4762
> > > https://issues.apache.org/jira/browse/CLOUDSTACK-4760
> > > https://issues.apache.org/jira/browse/CLOUDSTACK-4762
> > >
> > >
> > > Repository: cloudstack-git
> > >
> > >
> > > Description
> > > -------
> > >
> > > CLOUDSTACK-4760 : Enabling GPU support for XenServer.
> > > CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
> > >
> > > This feature is to enable the GPU-passthrough and vGPU
> > > functionality, with the help of this feature, admins/users will be
> > > able to leverage the GPU graphics unit power by deploying a virtul
> > > machine with GPU or vGPU support or by changing the service offering
> > > of an existing VM at any later point of time. There GPU/vGPU enabled
> > > VMs are able to run graphical applications.
> > > For now, this feature is only supported with XenServer hypervisor
> > > but can be extended to add the support of other hypervisors.
> > >
> > >
> > > Diffs
> > > -----
> > >
> > > api/src/com/cloud/agent/api/to/GPUDeviceTO.java PRE-CREATION
> > > api/src/com/cloud/agent/api/to/VirtualMachineTO.java bed3e1d
> > > api/src/com/cloud/gpu/GPU.java PRE-CREATION
> > > api/src/org/apache/cloudstack/api/ApiConstants.java 7b7f9ca
> > >
> >
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateService
> > OfferingCmd.java
> > 1d8cbff
> > > api/src/org/apache/cloudstack/api/response/GpuResponse.java
> > PRE-CREATION
> > > api/src/org/apache/cloudstack/api/response/HostResponse.java
> e2d8eb5
> > > api/src/org/apache/cloudstack/api/response/UserVmResponse.java
> 84d532b
> > > api/src/org/apache/cloudstack/api/response/VgpuResponse.java
> > PRE-CREATION
> > > core/src/com/cloud/agent/api/GetGPUStatsAnswer.java PRE-
> CREATION
> > > core/src/com/cloud/agent/api/GetGPUStatsCommand.java PRE-
> CREATION
> > > core/src/com/cloud/agent/api/StartupRoutingCommand.java 626c87f
> > > core/src/com/cloud/agent/api/StopCommand.java 6a29aa6
> > > engine/components-
> api/src/com/cloud/resource/ResourceManager.java
> > 95fb385
> > >
> > >
> engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
> > d19fc38
> > >
> > engine/schema/resources/META-INF/cloudstack/core/spring-engine-
> schema-
> > core-daos-context.xml
> > 08efb83
> > > engine/schema/src/com/cloud/gpu/HostGpuGroupsVO.java PRE-
> CREATION
> > > engine/schema/src/com/cloud/gpu/VGPUTypesVO.java PRE-CREATION
> > > engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDao.java PRE-
> CREATION
> > > engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java
> > PRE-CREATION
> > > engine/schema/src/com/cloud/gpu/dao/VGPUTypesDao.java PRE-
> CREATION
> > > engine/schema/src/com/cloud/gpu/dao/VGPUTypesDaoImpl.java PRE-
> CREATION
> > > engine/schema/src/com/cloud/host/HostVO.java 56c066b
> > > engine/schema/src/com/cloud/host/dao/HostDaoImpl.java 08a4366
> > > engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java
> > e1a1e93
> > >
> > plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixRe
> > sourceBase.java
> > 48ae3ea
> > >
> > server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.ja
> > va
> > b77f8ac
> > > server/src/com/cloud/api/ApiDBUtils.java a23244b
> > > server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1b95d9b
> > > server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 08478e2
> > > server/src/com/cloud/configuration/ConfigurationManagerImpl.java
> > 1c1da1f
> > > server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
> 3c87b24
> > > server/src/com/cloud/hypervisor/HypervisorGuruBase.java 7fb79fa
> > > server/src/com/cloud/network/NetworkUsageManagerImpl.java
> e9b0393
> > > server/src/com/cloud/resource/ResourceManagerImpl.java adad85c
> > > server/src/com/cloud/server/ManagementServerImpl.java 2a08ddc
> > > server/src/com/cloud/server/StatsCollector.java 548587c
> > > server/src/com/cloud/storage/VolumeApiServiceImpl.java c95d316
> > > server/src/com/cloud/vm/UserVmManagerImpl.java 97e3ae7
> > > server/test/com/cloud/resource/MockResourceManagerImpl.java
> 5599e8c
> > > server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java
> 751a3bd
> > > server/test/resources/createNetworkOffering.xml c6228da
> > > setup/db/db/schema-430to440.sql 0ded7a9
> > > test/integration/smoke/test_deploy_vgpu_enabled_vm.py PRE-
> CREATION
> > > tools/marvin/marvin/integration/lib/base.py 0a7ad94
> > > ui/scripts/configuration.js 869b876
> > > ui/scripts/instances.js 53c9e98
> > >
> > > Diff: https://reviews.apache.org/r/17889/diff/
> > >
> > >
> > > Testing
> > > -------
> > >
> > > Tests:
> > >
> > > Hosts:
> > > 1) Add a XS hosts with GPU cards.
> > > 2) Create a pool of XS hosts with GPU cards.
> > > 3) Create a pool of XS hosts which are GPU enabled as well which are
> > > not
> > enabled.
> > > 4) Checke the values in both the tables and verify the no. of GPU
> > > cards,
> > remaining capacity etc.
> > > 5) Remove a host from a pool and the remaining capacity should get
> > updated properly.
> > >
> > > VM:
> > > 1) Create a compute offering with GPU/vGPU capability.
> > > 2) Deploy HVM OS with this service offering.
> > > 3) In case of successful start of VM, remaining capacity should get
> > updated correspondingly.
> > > 4) Stop the VM and verify the capacity.
> > > 5) Destroy the VM and verify the capacity.
> > > 6) If the hosts does not have capacity to deploy a gpu enabled VM,
> > > then
> > CS throws the InsufficientServerCapacity exception with proper error
> > message in the logs.
> > >
> > >
> > > Thanks,
> > >
> > > Sanjay Tripathi
> > >
> > >
> >
> >
RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for XenServer.
Posted by Erik Weber <te...@gmail.com>.
Anything that's hard coded is potentially a problem to change for a user.
You can take a somewhat similar view on the vmware disk controller issue
(cloudstack-4787 iirc) , where it is hard coded what to use, and changing
it to ui based has taken a couple of versions and is still not fixed. Which
is why i would vote against any hard coded value that could and should
either be dynamic or user specified.
Regards,
Erik Weber
12. mars 2014 16:24 skrev "Stephen Turner" <St...@citrix.com>
følgende:
> Does anyone else have a view on this? I'm not familiar with the code base
> yet, so am I worrying about nothing?
>
> --
> Stephen Turner
>
>
> -----Original Message-----
> From: Stephen Turner [mailto:Stephen.Turner@citrix.com]
> Sent: 11 March 2014 16:13
> To: dev@cloudstack.apache.org
> Cc: Sanjay Tripathi
> Subject: RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support
> for XenServer.
>
> Thanks for your reply, Sanjay. I understand that it's only K1 and K2 cards
> at the moment, but when they add more, do we really want to have to edit
> the code to match? What is the notification process by which we know there
> are new types? Does the user have to upgrade CloudStack to get access to
> the new types? In contrast, if we could use the current list from the
> server, we don't have to worry about it: it will just keep itself up to
> date.
>
> --
> Stephen Turner
>
>
> -----Original Message-----
> From: Sanjay Tripathi
> Sent: 11 March 2014 16:05
> To: Stephen Turner; dev@cloudstack.apache.org
> Subject: RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support
> for XenServer.
>
> Hi Stephen,
>
> As of now, there are 2 GPU cards available in market i.e. NVIDIA GRID K1
> and K2 cards. These card supports 5 different configurations of vGPUs which
> we call as vGPU types (for details:
> http://www.nvidia.com/object/virtual-gpus.html). In future, if this list
> grows, then we'll add a separate table similar to guest_os table, which
> will have the list of supported vGPU types.
>
> Also, the table "vgpu_types" has the entries of different vGPU types
> supported in hosts managed by CloudStack.
>
> --Sanjay
>
> -----Original Message-----
> From: Stephen Turner
> Sent: Tuesday, March 11, 2014 5:54 PM
> To: dev@cloudstack.apache.org
> Cc: Sanjay Tripathi
> Subject: RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support
> for XenServer.
>
> I see that the change has been pushed already, but I'm a bit concerned
> about there being a hard-coded list of vGPU types in the class GPU. I
> anticipate that Nvidia or other vendors will add more vGPU types later, and
> this will require us to keep up with the list. Is there a way we can use
> the list of vGPU types returned from the servers instead?
>
> --
> Stephen Turner
>
>
>
> -----Original Message-----
> From: ASF Subversion and Git Services [mailto:noreply@reviews.apache.org]
> On Behalf Of ASF Subversion and Git Services
> Sent: 11 March 2014 10:10
> To: Koushik Das; Devdeep Singh; Alex Huang
> Cc: Sanjay Tripathi; ASF Subversion and Git Services; cloudstack
> Subject: Re: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support
> for XenServer.
>
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17889/#review36769
> -----------------------------------------------------------
>
>
> Commit c7d31fe288b13ff4f0f046f83f9eb4a9c2bf06c5 in cloudstack's branch
> refs/heads/master from Sanjay Tripathi [
> https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=c7d31fe ]
>
> CLOUDSTACK-4760 : Enabling GPU support for XenServer.
> CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
>
> This feature is to enable the GPU-passthrough and vGPU functionality, with
> the help of this feature, admins/users will be able to leverage the GPU
> graphics unit power by deploying a virtul machine with GPU or vGPU support
> or by changing the service offering of an existing VM at any later point of
> time. There GPU/vGPU enabled VMs are able to run graphical applications.
> For now, this feature is only supported with XenServer hypervisor but can
> be extended to add the support of other hypervisors.
>
>
> - ASF Subversion and Git Services
>
>
> On Feb. 27, 2014, 12:35 p.m., Sanjay Tripathi wrote:
> >
> > -----------------------------------------------------------
> > This is an automatically generated e-mail. To reply, visit:
> > https://reviews.apache.org/r/17889/
> > -----------------------------------------------------------
> >
> > (Updated Feb. 27, 2014, 12:35 p.m.)
> >
> >
> > Review request for cloudstack, Alex Huang, Devdeep Singh, and Koushik
> Das.
> >
> >
> > Bugs: CLOUDSTACK-4760 and CLOUDSTACK-4762
> > https://issues.apache.org/jira/browse/CLOUDSTACK-4760
> > https://issues.apache.org/jira/browse/CLOUDSTACK-4762
> >
> >
> > Repository: cloudstack-git
> >
> >
> > Description
> > -------
> >
> > CLOUDSTACK-4760 : Enabling GPU support for XenServer.
> > CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
> >
> > This feature is to enable the GPU-passthrough and vGPU functionality,
> > with the help of this feature, admins/users will be able to leverage
> > the GPU graphics unit power by deploying a virtul machine with GPU or
> > vGPU support or by changing the service offering of an existing VM at
> > any later point of time. There GPU/vGPU enabled VMs are able to run
> > graphical applications.
> > For now, this feature is only supported with XenServer hypervisor but
> > can be extended to add the support of other hypervisors.
> >
> >
> > Diffs
> > -----
> >
> > api/src/com/cloud/agent/api/to/GPUDeviceTO.java PRE-CREATION
> > api/src/com/cloud/agent/api/to/VirtualMachineTO.java bed3e1d
> > api/src/com/cloud/gpu/GPU.java PRE-CREATION
> > api/src/org/apache/cloudstack/api/ApiConstants.java 7b7f9ca
> >
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java
> 1d8cbff
> > api/src/org/apache/cloudstack/api/response/GpuResponse.java
> PRE-CREATION
> > api/src/org/apache/cloudstack/api/response/HostResponse.java e2d8eb5
> > api/src/org/apache/cloudstack/api/response/UserVmResponse.java 84d532b
> > api/src/org/apache/cloudstack/api/response/VgpuResponse.java
> PRE-CREATION
> > core/src/com/cloud/agent/api/GetGPUStatsAnswer.java PRE-CREATION
> > core/src/com/cloud/agent/api/GetGPUStatsCommand.java PRE-CREATION
> > core/src/com/cloud/agent/api/StartupRoutingCommand.java 626c87f
> > core/src/com/cloud/agent/api/StopCommand.java 6a29aa6
> > engine/components-api/src/com/cloud/resource/ResourceManager.java
> 95fb385
> > engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
> d19fc38
> >
> engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml
> 08efb83
> > engine/schema/src/com/cloud/gpu/HostGpuGroupsVO.java PRE-CREATION
> > engine/schema/src/com/cloud/gpu/VGPUTypesVO.java PRE-CREATION
> > engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDao.java PRE-CREATION
> > engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java
> PRE-CREATION
> > engine/schema/src/com/cloud/gpu/dao/VGPUTypesDao.java PRE-CREATION
> > engine/schema/src/com/cloud/gpu/dao/VGPUTypesDaoImpl.java PRE-CREATION
> > engine/schema/src/com/cloud/host/HostVO.java 56c066b
> > engine/schema/src/com/cloud/host/dao/HostDaoImpl.java 08a4366
> > engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java
> e1a1e93
> >
> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
> 48ae3ea
> >
> server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java
> b77f8ac
> > server/src/com/cloud/api/ApiDBUtils.java a23244b
> > server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1b95d9b
> > server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 08478e2
> > server/src/com/cloud/configuration/ConfigurationManagerImpl.java
> 1c1da1f
> > server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java 3c87b24
> > server/src/com/cloud/hypervisor/HypervisorGuruBase.java 7fb79fa
> > server/src/com/cloud/network/NetworkUsageManagerImpl.java e9b0393
> > server/src/com/cloud/resource/ResourceManagerImpl.java adad85c
> > server/src/com/cloud/server/ManagementServerImpl.java 2a08ddc
> > server/src/com/cloud/server/StatsCollector.java 548587c
> > server/src/com/cloud/storage/VolumeApiServiceImpl.java c95d316
> > server/src/com/cloud/vm/UserVmManagerImpl.java 97e3ae7
> > server/test/com/cloud/resource/MockResourceManagerImpl.java 5599e8c
> > server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java 751a3bd
> > server/test/resources/createNetworkOffering.xml c6228da
> > setup/db/db/schema-430to440.sql 0ded7a9
> > test/integration/smoke/test_deploy_vgpu_enabled_vm.py PRE-CREATION
> > tools/marvin/marvin/integration/lib/base.py 0a7ad94
> > ui/scripts/configuration.js 869b876
> > ui/scripts/instances.js 53c9e98
> >
> > Diff: https://reviews.apache.org/r/17889/diff/
> >
> >
> > Testing
> > -------
> >
> > Tests:
> >
> > Hosts:
> > 1) Add a XS hosts with GPU cards.
> > 2) Create a pool of XS hosts with GPU cards.
> > 3) Create a pool of XS hosts which are GPU enabled as well which are not
> enabled.
> > 4) Checke the values in both the tables and verify the no. of GPU cards,
> remaining capacity etc.
> > 5) Remove a host from a pool and the remaining capacity should get
> updated properly.
> >
> > VM:
> > 1) Create a compute offering with GPU/vGPU capability.
> > 2) Deploy HVM OS with this service offering.
> > 3) In case of successful start of VM, remaining capacity should get
> updated correspondingly.
> > 4) Stop the VM and verify the capacity.
> > 5) Destroy the VM and verify the capacity.
> > 6) If the hosts does not have capacity to deploy a gpu enabled VM, then
> CS throws the InsufficientServerCapacity exception with proper error
> message in the logs.
> >
> >
> > Thanks,
> >
> > Sanjay Tripathi
> >
> >
>
>
RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support
for XenServer.
Posted by Stephen Turner <St...@citrix.com>.
Does anyone else have a view on this? I'm not familiar with the code base yet, so am I worrying about nothing?
--
Stephen Turner
-----Original Message-----
From: Stephen Turner [mailto:Stephen.Turner@citrix.com]
Sent: 11 March 2014 16:13
To: dev@cloudstack.apache.org
Cc: Sanjay Tripathi
Subject: RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for XenServer.
Thanks for your reply, Sanjay. I understand that it's only K1 and K2 cards at the moment, but when they add more, do we really want to have to edit the code to match? What is the notification process by which we know there are new types? Does the user have to upgrade CloudStack to get access to the new types? In contrast, if we could use the current list from the server, we don't have to worry about it: it will just keep itself up to date.
--
Stephen Turner
-----Original Message-----
From: Sanjay Tripathi
Sent: 11 March 2014 16:05
To: Stephen Turner; dev@cloudstack.apache.org
Subject: RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for XenServer.
Hi Stephen,
As of now, there are 2 GPU cards available in market i.e. NVIDIA GRID K1 and K2 cards. These card supports 5 different configurations of vGPUs which we call as vGPU types (for details: http://www.nvidia.com/object/virtual-gpus.html). In future, if this list grows, then we'll add a separate table similar to guest_os table, which will have the list of supported vGPU types.
Also, the table "vgpu_types" has the entries of different vGPU types supported in hosts managed by CloudStack.
--Sanjay
-----Original Message-----
From: Stephen Turner
Sent: Tuesday, March 11, 2014 5:54 PM
To: dev@cloudstack.apache.org
Cc: Sanjay Tripathi
Subject: RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for XenServer.
I see that the change has been pushed already, but I'm a bit concerned about there being a hard-coded list of vGPU types in the class GPU. I anticipate that Nvidia or other vendors will add more vGPU types later, and this will require us to keep up with the list. Is there a way we can use the list of vGPU types returned from the servers instead?
--
Stephen Turner
-----Original Message-----
From: ASF Subversion and Git Services [mailto:noreply@reviews.apache.org] On Behalf Of ASF Subversion and Git Services
Sent: 11 March 2014 10:10
To: Koushik Das; Devdeep Singh; Alex Huang
Cc: Sanjay Tripathi; ASF Subversion and Git Services; cloudstack
Subject: Re: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for XenServer.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17889/#review36769
-----------------------------------------------------------
Commit c7d31fe288b13ff4f0f046f83f9eb4a9c2bf06c5 in cloudstack's branch refs/heads/master from Sanjay Tripathi [ https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=c7d31fe ]
CLOUDSTACK-4760 : Enabling GPU support for XenServer.
CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
This feature is to enable the GPU-passthrough and vGPU functionality, with the help of this feature, admins/users will be able to leverage the GPU graphics unit power by deploying a virtul machine with GPU or vGPU support or by changing the service offering of an existing VM at any later point of time. There GPU/vGPU enabled VMs are able to run graphical applications.
For now, this feature is only supported with XenServer hypervisor but can be extended to add the support of other hypervisors.
- ASF Subversion and Git Services
On Feb. 27, 2014, 12:35 p.m., Sanjay Tripathi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17889/
> -----------------------------------------------------------
>
> (Updated Feb. 27, 2014, 12:35 p.m.)
>
>
> Review request for cloudstack, Alex Huang, Devdeep Singh, and Koushik Das.
>
>
> Bugs: CLOUDSTACK-4760 and CLOUDSTACK-4762
> https://issues.apache.org/jira/browse/CLOUDSTACK-4760
> https://issues.apache.org/jira/browse/CLOUDSTACK-4762
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> CLOUDSTACK-4760 : Enabling GPU support for XenServer.
> CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
>
> This feature is to enable the GPU-passthrough and vGPU functionality,
> with the help of this feature, admins/users will be able to leverage
> the GPU graphics unit power by deploying a virtul machine with GPU or
> vGPU support or by changing the service offering of an existing VM at
> any later point of time. There GPU/vGPU enabled VMs are able to run
> graphical applications.
> For now, this feature is only supported with XenServer hypervisor but
> can be extended to add the support of other hypervisors.
>
>
> Diffs
> -----
>
> api/src/com/cloud/agent/api/to/GPUDeviceTO.java PRE-CREATION
> api/src/com/cloud/agent/api/to/VirtualMachineTO.java bed3e1d
> api/src/com/cloud/gpu/GPU.java PRE-CREATION
> api/src/org/apache/cloudstack/api/ApiConstants.java 7b7f9ca
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 1d8cbff
> api/src/org/apache/cloudstack/api/response/GpuResponse.java PRE-CREATION
> api/src/org/apache/cloudstack/api/response/HostResponse.java e2d8eb5
> api/src/org/apache/cloudstack/api/response/UserVmResponse.java 84d532b
> api/src/org/apache/cloudstack/api/response/VgpuResponse.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsAnswer.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsCommand.java PRE-CREATION
> core/src/com/cloud/agent/api/StartupRoutingCommand.java 626c87f
> core/src/com/cloud/agent/api/StopCommand.java 6a29aa6
> engine/components-api/src/com/cloud/resource/ResourceManager.java 95fb385
> engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java d19fc38
> engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 08efb83
> engine/schema/src/com/cloud/gpu/HostGpuGroupsVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/VGPUTypesVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/host/HostVO.java 56c066b
> engine/schema/src/com/cloud/host/dao/HostDaoImpl.java 08a4366
> engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java e1a1e93
> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java 48ae3ea
> server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java b77f8ac
> server/src/com/cloud/api/ApiDBUtils.java a23244b
> server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1b95d9b
> server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 08478e2
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 1c1da1f
> server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java 3c87b24
> server/src/com/cloud/hypervisor/HypervisorGuruBase.java 7fb79fa
> server/src/com/cloud/network/NetworkUsageManagerImpl.java e9b0393
> server/src/com/cloud/resource/ResourceManagerImpl.java adad85c
> server/src/com/cloud/server/ManagementServerImpl.java 2a08ddc
> server/src/com/cloud/server/StatsCollector.java 548587c
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c95d316
> server/src/com/cloud/vm/UserVmManagerImpl.java 97e3ae7
> server/test/com/cloud/resource/MockResourceManagerImpl.java 5599e8c
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java 751a3bd
> server/test/resources/createNetworkOffering.xml c6228da
> setup/db/db/schema-430to440.sql 0ded7a9
> test/integration/smoke/test_deploy_vgpu_enabled_vm.py PRE-CREATION
> tools/marvin/marvin/integration/lib/base.py 0a7ad94
> ui/scripts/configuration.js 869b876
> ui/scripts/instances.js 53c9e98
>
> Diff: https://reviews.apache.org/r/17889/diff/
>
>
> Testing
> -------
>
> Tests:
>
> Hosts:
> 1) Add a XS hosts with GPU cards.
> 2) Create a pool of XS hosts with GPU cards.
> 3) Create a pool of XS hosts which are GPU enabled as well which are not enabled.
> 4) Checke the values in both the tables and verify the no. of GPU cards, remaining capacity etc.
> 5) Remove a host from a pool and the remaining capacity should get updated properly.
>
> VM:
> 1) Create a compute offering with GPU/vGPU capability.
> 2) Deploy HVM OS with this service offering.
> 3) In case of successful start of VM, remaining capacity should get updated correspondingly.
> 4) Stop the VM and verify the capacity.
> 5) Destroy the VM and verify the capacity.
> 6) If the hosts does not have capacity to deploy a gpu enabled VM, then CS throws the InsufficientServerCapacity exception with proper error message in the logs.
>
>
> Thanks,
>
> Sanjay Tripathi
>
>
RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support
for XenServer.
Posted by Stephen Turner <St...@citrix.com>.
Thanks for your reply, Sanjay. I understand that it's only K1 and K2 cards at the moment, but when they add more, do we really want to have to edit the code to match? What is the notification process by which we know there are new types? Does the user have to upgrade CloudStack to get access to the new types? In contrast, if we could use the current list from the server, we don't have to worry about it: it will just keep itself up to date.
--
Stephen Turner
-----Original Message-----
From: Sanjay Tripathi
Sent: 11 March 2014 16:05
To: Stephen Turner; dev@cloudstack.apache.org
Subject: RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for XenServer.
Hi Stephen,
As of now, there are 2 GPU cards available in market i.e. NVIDIA GRID K1 and K2 cards. These card supports 5 different configurations of vGPUs which we call as vGPU types (for details: http://www.nvidia.com/object/virtual-gpus.html). In future, if this list grows, then we'll add a separate table similar to guest_os table, which will have the list of supported vGPU types.
Also, the table "vgpu_types" has the entries of different vGPU types supported in hosts managed by CloudStack.
--Sanjay
-----Original Message-----
From: Stephen Turner
Sent: Tuesday, March 11, 2014 5:54 PM
To: dev@cloudstack.apache.org
Cc: Sanjay Tripathi
Subject: RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for XenServer.
I see that the change has been pushed already, but I'm a bit concerned about there being a hard-coded list of vGPU types in the class GPU. I anticipate that Nvidia or other vendors will add more vGPU types later, and this will require us to keep up with the list. Is there a way we can use the list of vGPU types returned from the servers instead?
--
Stephen Turner
-----Original Message-----
From: ASF Subversion and Git Services [mailto:noreply@reviews.apache.org] On Behalf Of ASF Subversion and Git Services
Sent: 11 March 2014 10:10
To: Koushik Das; Devdeep Singh; Alex Huang
Cc: Sanjay Tripathi; ASF Subversion and Git Services; cloudstack
Subject: Re: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for XenServer.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17889/#review36769
-----------------------------------------------------------
Commit c7d31fe288b13ff4f0f046f83f9eb4a9c2bf06c5 in cloudstack's branch refs/heads/master from Sanjay Tripathi [ https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=c7d31fe ]
CLOUDSTACK-4760 : Enabling GPU support for XenServer.
CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
This feature is to enable the GPU-passthrough and vGPU functionality, with the help of this feature, admins/users will be able to leverage the GPU graphics unit power by deploying a virtul machine with GPU or vGPU support or by changing the service offering of an existing VM at any later point of time. There GPU/vGPU enabled VMs are able to run graphical applications.
For now, this feature is only supported with XenServer hypervisor but can be extended to add the support of other hypervisors.
- ASF Subversion and Git Services
On Feb. 27, 2014, 12:35 p.m., Sanjay Tripathi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17889/
> -----------------------------------------------------------
>
> (Updated Feb. 27, 2014, 12:35 p.m.)
>
>
> Review request for cloudstack, Alex Huang, Devdeep Singh, and Koushik Das.
>
>
> Bugs: CLOUDSTACK-4760 and CLOUDSTACK-4762
> https://issues.apache.org/jira/browse/CLOUDSTACK-4760
> https://issues.apache.org/jira/browse/CLOUDSTACK-4762
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> CLOUDSTACK-4760 : Enabling GPU support for XenServer.
> CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
>
> This feature is to enable the GPU-passthrough and vGPU functionality,
> with the help of this feature, admins/users will be able to leverage
> the GPU graphics unit power by deploying a virtul machine with GPU or
> vGPU support or by changing the service offering of an existing VM at
> any later point of time. There GPU/vGPU enabled VMs are able to run
> graphical applications.
> For now, this feature is only supported with XenServer hypervisor but
> can be extended to add the support of other hypervisors.
>
>
> Diffs
> -----
>
> api/src/com/cloud/agent/api/to/GPUDeviceTO.java PRE-CREATION
> api/src/com/cloud/agent/api/to/VirtualMachineTO.java bed3e1d
> api/src/com/cloud/gpu/GPU.java PRE-CREATION
> api/src/org/apache/cloudstack/api/ApiConstants.java 7b7f9ca
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 1d8cbff
> api/src/org/apache/cloudstack/api/response/GpuResponse.java PRE-CREATION
> api/src/org/apache/cloudstack/api/response/HostResponse.java e2d8eb5
> api/src/org/apache/cloudstack/api/response/UserVmResponse.java 84d532b
> api/src/org/apache/cloudstack/api/response/VgpuResponse.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsAnswer.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsCommand.java PRE-CREATION
> core/src/com/cloud/agent/api/StartupRoutingCommand.java 626c87f
> core/src/com/cloud/agent/api/StopCommand.java 6a29aa6
> engine/components-api/src/com/cloud/resource/ResourceManager.java 95fb385
> engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java d19fc38
> engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 08efb83
> engine/schema/src/com/cloud/gpu/HostGpuGroupsVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/VGPUTypesVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/host/HostVO.java 56c066b
> engine/schema/src/com/cloud/host/dao/HostDaoImpl.java 08a4366
> engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java e1a1e93
> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java 48ae3ea
> server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java b77f8ac
> server/src/com/cloud/api/ApiDBUtils.java a23244b
> server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1b95d9b
> server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 08478e2
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 1c1da1f
> server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java 3c87b24
> server/src/com/cloud/hypervisor/HypervisorGuruBase.java 7fb79fa
> server/src/com/cloud/network/NetworkUsageManagerImpl.java e9b0393
> server/src/com/cloud/resource/ResourceManagerImpl.java adad85c
> server/src/com/cloud/server/ManagementServerImpl.java 2a08ddc
> server/src/com/cloud/server/StatsCollector.java 548587c
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c95d316
> server/src/com/cloud/vm/UserVmManagerImpl.java 97e3ae7
> server/test/com/cloud/resource/MockResourceManagerImpl.java 5599e8c
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java 751a3bd
> server/test/resources/createNetworkOffering.xml c6228da
> setup/db/db/schema-430to440.sql 0ded7a9
> test/integration/smoke/test_deploy_vgpu_enabled_vm.py PRE-CREATION
> tools/marvin/marvin/integration/lib/base.py 0a7ad94
> ui/scripts/configuration.js 869b876
> ui/scripts/instances.js 53c9e98
>
> Diff: https://reviews.apache.org/r/17889/diff/
>
>
> Testing
> -------
>
> Tests:
>
> Hosts:
> 1) Add a XS hosts with GPU cards.
> 2) Create a pool of XS hosts with GPU cards.
> 3) Create a pool of XS hosts which are GPU enabled as well which are not enabled.
> 4) Checke the values in both the tables and verify the no. of GPU cards, remaining capacity etc.
> 5) Remove a host from a pool and the remaining capacity should get updated properly.
>
> VM:
> 1) Create a compute offering with GPU/vGPU capability.
> 2) Deploy HVM OS with this service offering.
> 3) In case of successful start of VM, remaining capacity should get updated correspondingly.
> 4) Stop the VM and verify the capacity.
> 5) Destroy the VM and verify the capacity.
> 6) If the hosts does not have capacity to deploy a gpu enabled VM, then CS throws the InsufficientServerCapacity exception with proper error message in the logs.
>
>
> Thanks,
>
> Sanjay Tripathi
>
>
RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support
for XenServer.
Posted by Sanjay Tripathi <sa...@citrix.com>.
Hi Stephen,
As of now, there are 2 GPU cards available in market i.e. NVIDIA GRID K1 and K2 cards. These card supports 5 different configurations of vGPUs which we call as vGPU types (for details: http://www.nvidia.com/object/virtual-gpus.html). In future, if this list grows, then we'll add a separate table similar to guest_os table, which will have the list of supported vGPU types.
Also, the table "vgpu_types" has the entries of different vGPU types supported in hosts managed by CloudStack.
--Sanjay
-----Original Message-----
From: Stephen Turner
Sent: Tuesday, March 11, 2014 5:54 PM
To: dev@cloudstack.apache.org
Cc: Sanjay Tripathi
Subject: RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for XenServer.
I see that the change has been pushed already, but I'm a bit concerned about there being a hard-coded list of vGPU types in the class GPU. I anticipate that Nvidia or other vendors will add more vGPU types later, and this will require us to keep up with the list. Is there a way we can use the list of vGPU types returned from the servers instead?
--
Stephen Turner
-----Original Message-----
From: ASF Subversion and Git Services [mailto:noreply@reviews.apache.org] On Behalf Of ASF Subversion and Git Services
Sent: 11 March 2014 10:10
To: Koushik Das; Devdeep Singh; Alex Huang
Cc: Sanjay Tripathi; ASF Subversion and Git Services; cloudstack
Subject: Re: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for XenServer.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17889/#review36769
-----------------------------------------------------------
Commit c7d31fe288b13ff4f0f046f83f9eb4a9c2bf06c5 in cloudstack's branch refs/heads/master from Sanjay Tripathi [ https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=c7d31fe ]
CLOUDSTACK-4760 : Enabling GPU support for XenServer.
CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
This feature is to enable the GPU-passthrough and vGPU functionality, with the help of this feature, admins/users will be able to leverage the GPU graphics unit power by deploying a virtul machine with GPU or vGPU support or by changing the service offering of an existing VM at any later point of time. There GPU/vGPU enabled VMs are able to run graphical applications.
For now, this feature is only supported with XenServer hypervisor but can be extended to add the support of other hypervisors.
- ASF Subversion and Git Services
On Feb. 27, 2014, 12:35 p.m., Sanjay Tripathi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17889/
> -----------------------------------------------------------
>
> (Updated Feb. 27, 2014, 12:35 p.m.)
>
>
> Review request for cloudstack, Alex Huang, Devdeep Singh, and Koushik Das.
>
>
> Bugs: CLOUDSTACK-4760 and CLOUDSTACK-4762
> https://issues.apache.org/jira/browse/CLOUDSTACK-4760
> https://issues.apache.org/jira/browse/CLOUDSTACK-4762
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> CLOUDSTACK-4760 : Enabling GPU support for XenServer.
> CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
>
> This feature is to enable the GPU-passthrough and vGPU functionality,
> with the help of this feature, admins/users will be able to leverage
> the GPU graphics unit power by deploying a virtul machine with GPU or
> vGPU support or by changing the service offering of an existing VM at
> any later point of time. There GPU/vGPU enabled VMs are able to run
> graphical applications.
> For now, this feature is only supported with XenServer hypervisor but
> can be extended to add the support of other hypervisors.
>
>
> Diffs
> -----
>
> api/src/com/cloud/agent/api/to/GPUDeviceTO.java PRE-CREATION
> api/src/com/cloud/agent/api/to/VirtualMachineTO.java bed3e1d
> api/src/com/cloud/gpu/GPU.java PRE-CREATION
> api/src/org/apache/cloudstack/api/ApiConstants.java 7b7f9ca
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 1d8cbff
> api/src/org/apache/cloudstack/api/response/GpuResponse.java PRE-CREATION
> api/src/org/apache/cloudstack/api/response/HostResponse.java e2d8eb5
> api/src/org/apache/cloudstack/api/response/UserVmResponse.java 84d532b
> api/src/org/apache/cloudstack/api/response/VgpuResponse.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsAnswer.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsCommand.java PRE-CREATION
> core/src/com/cloud/agent/api/StartupRoutingCommand.java 626c87f
> core/src/com/cloud/agent/api/StopCommand.java 6a29aa6
> engine/components-api/src/com/cloud/resource/ResourceManager.java 95fb385
> engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java d19fc38
> engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 08efb83
> engine/schema/src/com/cloud/gpu/HostGpuGroupsVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/VGPUTypesVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/host/HostVO.java 56c066b
> engine/schema/src/com/cloud/host/dao/HostDaoImpl.java 08a4366
> engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java e1a1e93
> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java 48ae3ea
> server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java b77f8ac
> server/src/com/cloud/api/ApiDBUtils.java a23244b
> server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1b95d9b
> server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 08478e2
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 1c1da1f
> server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java 3c87b24
> server/src/com/cloud/hypervisor/HypervisorGuruBase.java 7fb79fa
> server/src/com/cloud/network/NetworkUsageManagerImpl.java e9b0393
> server/src/com/cloud/resource/ResourceManagerImpl.java adad85c
> server/src/com/cloud/server/ManagementServerImpl.java 2a08ddc
> server/src/com/cloud/server/StatsCollector.java 548587c
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c95d316
> server/src/com/cloud/vm/UserVmManagerImpl.java 97e3ae7
> server/test/com/cloud/resource/MockResourceManagerImpl.java 5599e8c
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java 751a3bd
> server/test/resources/createNetworkOffering.xml c6228da
> setup/db/db/schema-430to440.sql 0ded7a9
> test/integration/smoke/test_deploy_vgpu_enabled_vm.py PRE-CREATION
> tools/marvin/marvin/integration/lib/base.py 0a7ad94
> ui/scripts/configuration.js 869b876
> ui/scripts/instances.js 53c9e98
>
> Diff: https://reviews.apache.org/r/17889/diff/
>
>
> Testing
> -------
>
> Tests:
>
> Hosts:
> 1) Add a XS hosts with GPU cards.
> 2) Create a pool of XS hosts with GPU cards.
> 3) Create a pool of XS hosts which are GPU enabled as well which are not enabled.
> 4) Checke the values in both the tables and verify the no. of GPU cards, remaining capacity etc.
> 5) Remove a host from a pool and the remaining capacity should get updated properly.
>
> VM:
> 1) Create a compute offering with GPU/vGPU capability.
> 2) Deploy HVM OS with this service offering.
> 3) In case of successful start of VM, remaining capacity should get updated correspondingly.
> 4) Stop the VM and verify the capacity.
> 5) Destroy the VM and verify the capacity.
> 6) If the hosts does not have capacity to deploy a gpu enabled VM, then CS throws the InsufficientServerCapacity exception with proper error message in the logs.
>
>
> Thanks,
>
> Sanjay Tripathi
>
>
RE: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support
for XenServer.
Posted by Stephen Turner <St...@citrix.com>.
I see that the change has been pushed already, but I'm a bit concerned about there being a hard-coded list of vGPU types in the class GPU. I anticipate that Nvidia or other vendors will add more vGPU types later, and this will require us to keep up with the list. Is there a way we can use the list of vGPU types returned from the servers instead?
--
Stephen Turner
-----Original Message-----
From: ASF Subversion and Git Services [mailto:noreply@reviews.apache.org] On Behalf Of ASF Subversion and Git Services
Sent: 11 March 2014 10:10
To: Koushik Das; Devdeep Singh; Alex Huang
Cc: Sanjay Tripathi; ASF Subversion and Git Services; cloudstack
Subject: Re: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for XenServer.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17889/#review36769
-----------------------------------------------------------
Commit c7d31fe288b13ff4f0f046f83f9eb4a9c2bf06c5 in cloudstack's branch refs/heads/master from Sanjay Tripathi [ https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=c7d31fe ]
CLOUDSTACK-4760 : Enabling GPU support for XenServer.
CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
This feature is to enable the GPU-passthrough and vGPU functionality, with the help of this feature, admins/users will be able to leverage the GPU graphics unit power by deploying a virtul machine with GPU or vGPU support or by changing the service offering of an existing VM at any later point of time. There GPU/vGPU enabled VMs are able to run graphical applications.
For now, this feature is only supported with XenServer hypervisor but can be extended to add the support of other hypervisors.
- ASF Subversion and Git Services
On Feb. 27, 2014, 12:35 p.m., Sanjay Tripathi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17889/
> -----------------------------------------------------------
>
> (Updated Feb. 27, 2014, 12:35 p.m.)
>
>
> Review request for cloudstack, Alex Huang, Devdeep Singh, and Koushik Das.
>
>
> Bugs: CLOUDSTACK-4760 and CLOUDSTACK-4762
> https://issues.apache.org/jira/browse/CLOUDSTACK-4760
> https://issues.apache.org/jira/browse/CLOUDSTACK-4762
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> CLOUDSTACK-4760 : Enabling GPU support for XenServer.
> CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
>
> This feature is to enable the GPU-passthrough and vGPU functionality,
> with the help of this feature, admins/users will be able to leverage
> the GPU graphics unit power by deploying a virtul machine with GPU or
> vGPU support or by changing the service offering of an existing VM at
> any later point of time. There GPU/vGPU enabled VMs are able to run
> graphical applications.
> For now, this feature is only supported with XenServer hypervisor but
> can be extended to add the support of other hypervisors.
>
>
> Diffs
> -----
>
> api/src/com/cloud/agent/api/to/GPUDeviceTO.java PRE-CREATION
> api/src/com/cloud/agent/api/to/VirtualMachineTO.java bed3e1d
> api/src/com/cloud/gpu/GPU.java PRE-CREATION
> api/src/org/apache/cloudstack/api/ApiConstants.java 7b7f9ca
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 1d8cbff
> api/src/org/apache/cloudstack/api/response/GpuResponse.java PRE-CREATION
> api/src/org/apache/cloudstack/api/response/HostResponse.java e2d8eb5
> api/src/org/apache/cloudstack/api/response/UserVmResponse.java 84d532b
> api/src/org/apache/cloudstack/api/response/VgpuResponse.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsAnswer.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsCommand.java PRE-CREATION
> core/src/com/cloud/agent/api/StartupRoutingCommand.java 626c87f
> core/src/com/cloud/agent/api/StopCommand.java 6a29aa6
> engine/components-api/src/com/cloud/resource/ResourceManager.java 95fb385
> engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java d19fc38
> engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 08efb83
> engine/schema/src/com/cloud/gpu/HostGpuGroupsVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/VGPUTypesVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/host/HostVO.java 56c066b
> engine/schema/src/com/cloud/host/dao/HostDaoImpl.java 08a4366
> engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java e1a1e93
> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java 48ae3ea
> server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java b77f8ac
> server/src/com/cloud/api/ApiDBUtils.java a23244b
> server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1b95d9b
> server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 08478e2
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 1c1da1f
> server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java 3c87b24
> server/src/com/cloud/hypervisor/HypervisorGuruBase.java 7fb79fa
> server/src/com/cloud/network/NetworkUsageManagerImpl.java e9b0393
> server/src/com/cloud/resource/ResourceManagerImpl.java adad85c
> server/src/com/cloud/server/ManagementServerImpl.java 2a08ddc
> server/src/com/cloud/server/StatsCollector.java 548587c
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c95d316
> server/src/com/cloud/vm/UserVmManagerImpl.java 97e3ae7
> server/test/com/cloud/resource/MockResourceManagerImpl.java 5599e8c
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java 751a3bd
> server/test/resources/createNetworkOffering.xml c6228da
> setup/db/db/schema-430to440.sql 0ded7a9
> test/integration/smoke/test_deploy_vgpu_enabled_vm.py PRE-CREATION
> tools/marvin/marvin/integration/lib/base.py 0a7ad94
> ui/scripts/configuration.js 869b876
> ui/scripts/instances.js 53c9e98
>
> Diff: https://reviews.apache.org/r/17889/diff/
>
>
> Testing
> -------
>
> Tests:
>
> Hosts:
> 1) Add a XS hosts with GPU cards.
> 2) Create a pool of XS hosts with GPU cards.
> 3) Create a pool of XS hosts which are GPU enabled as well which are not enabled.
> 4) Checke the values in both the tables and verify the no. of GPU cards, remaining capacity etc.
> 5) Remove a host from a pool and the remaining capacity should get updated properly.
>
> VM:
> 1) Create a compute offering with GPU/vGPU capability.
> 2) Deploy HVM OS with this service offering.
> 3) In case of successful start of VM, remaining capacity should get updated correspondingly.
> 4) Stop the VM and verify the capacity.
> 5) Destroy the VM and verify the capacity.
> 6) If the hosts does not have capacity to deploy a gpu enabled VM, then CS throws the InsufficientServerCapacity exception with proper error message in the logs.
>
>
> Thanks,
>
> Sanjay Tripathi
>
>
Re: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for
XenServer.
Posted by ASF Subversion and Git Services <as...@urd.zones.apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17889/#review36769
-----------------------------------------------------------
Commit c7d31fe288b13ff4f0f046f83f9eb4a9c2bf06c5 in cloudstack's branch refs/heads/master from Sanjay Tripathi
[ https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=c7d31fe ]
CLOUDSTACK-4760 : Enabling GPU support for XenServer.
CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
This feature is to enable the GPU-passthrough and vGPU functionality,
with the help of this feature, admins/users will be able to leverage
the GPU graphics unit power by deploying a virtul machine with GPU or
vGPU support or by changing the service offering of an existing VM
at any later point of time. There GPU/vGPU enabled VMs are able to run
graphical applications.
For now, this feature is only supported with XenServer hypervisor but
can be extended to add the support of other hypervisors.
- ASF Subversion and Git Services
On Feb. 27, 2014, 12:35 p.m., Sanjay Tripathi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17889/
> -----------------------------------------------------------
>
> (Updated Feb. 27, 2014, 12:35 p.m.)
>
>
> Review request for cloudstack, Alex Huang, Devdeep Singh, and Koushik Das.
>
>
> Bugs: CLOUDSTACK-4760 and CLOUDSTACK-4762
> https://issues.apache.org/jira/browse/CLOUDSTACK-4760
> https://issues.apache.org/jira/browse/CLOUDSTACK-4762
>
>
> Repository: cloudstack-git
>
>
> Description
> -------
>
> CLOUDSTACK-4760 : Enabling GPU support for XenServer.
> CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
>
> This feature is to enable the GPU-passthrough and vGPU functionality,
> with the help of this feature, admins/users will be able to leverage
> the GPU graphics unit power by deploying a virtul machine with GPU or
> vGPU support or by changing the service offering of an existing VM
> at any later point of time. There GPU/vGPU enabled VMs are able to run
> graphical applications.
> For now, this feature is only supported with XenServer hypervisor but
> can be extended to add the support of other hypervisors.
>
>
> Diffs
> -----
>
> api/src/com/cloud/agent/api/to/GPUDeviceTO.java PRE-CREATION
> api/src/com/cloud/agent/api/to/VirtualMachineTO.java bed3e1d
> api/src/com/cloud/gpu/GPU.java PRE-CREATION
> api/src/org/apache/cloudstack/api/ApiConstants.java 7b7f9ca
> api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 1d8cbff
> api/src/org/apache/cloudstack/api/response/GpuResponse.java PRE-CREATION
> api/src/org/apache/cloudstack/api/response/HostResponse.java e2d8eb5
> api/src/org/apache/cloudstack/api/response/UserVmResponse.java 84d532b
> api/src/org/apache/cloudstack/api/response/VgpuResponse.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsAnswer.java PRE-CREATION
> core/src/com/cloud/agent/api/GetGPUStatsCommand.java PRE-CREATION
> core/src/com/cloud/agent/api/StartupRoutingCommand.java 626c87f
> core/src/com/cloud/agent/api/StopCommand.java 6a29aa6
> engine/components-api/src/com/cloud/resource/ResourceManager.java 95fb385
> engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java d19fc38
> engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 08efb83
> engine/schema/src/com/cloud/gpu/HostGpuGroupsVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/VGPUTypesVO.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDao.java PRE-CREATION
> engine/schema/src/com/cloud/gpu/dao/VGPUTypesDaoImpl.java PRE-CREATION
> engine/schema/src/com/cloud/host/HostVO.java 56c066b
> engine/schema/src/com/cloud/host/dao/HostDaoImpl.java 08a4366
> engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java e1a1e93
> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java 48ae3ea
> server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java b77f8ac
> server/src/com/cloud/api/ApiDBUtils.java a23244b
> server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1b95d9b
> server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 08478e2
> server/src/com/cloud/configuration/ConfigurationManagerImpl.java 1c1da1f
> server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java 3c87b24
> server/src/com/cloud/hypervisor/HypervisorGuruBase.java 7fb79fa
> server/src/com/cloud/network/NetworkUsageManagerImpl.java e9b0393
> server/src/com/cloud/resource/ResourceManagerImpl.java adad85c
> server/src/com/cloud/server/ManagementServerImpl.java 2a08ddc
> server/src/com/cloud/server/StatsCollector.java 548587c
> server/src/com/cloud/storage/VolumeApiServiceImpl.java c95d316
> server/src/com/cloud/vm/UserVmManagerImpl.java 97e3ae7
> server/test/com/cloud/resource/MockResourceManagerImpl.java 5599e8c
> server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java 751a3bd
> server/test/resources/createNetworkOffering.xml c6228da
> setup/db/db/schema-430to440.sql 0ded7a9
> test/integration/smoke/test_deploy_vgpu_enabled_vm.py PRE-CREATION
> tools/marvin/marvin/integration/lib/base.py 0a7ad94
> ui/scripts/configuration.js 869b876
> ui/scripts/instances.js 53c9e98
>
> Diff: https://reviews.apache.org/r/17889/diff/
>
>
> Testing
> -------
>
> Tests:
>
> Hosts:
> 1) Add a XS hosts with GPU cards.
> 2) Create a pool of XS hosts with GPU cards.
> 3) Create a pool of XS hosts which are GPU enabled as well which are not enabled.
> 4) Checke the values in both the tables and verify the no. of GPU cards, remaining capacity etc.
> 5) Remove a host from a pool and the remaining capacity should get updated properly.
>
> VM:
> 1) Create a compute offering with GPU/vGPU capability.
> 2) Deploy HVM OS with this service offering.
> 3) In case of successful start of VM, remaining capacity should get updated correspondingly.
> 4) Stop the VM and verify the capacity.
> 5) Destroy the VM and verify the capacity.
> 6) If the hosts does not have capacity to deploy a gpu enabled VM, then CS throws the InsufficientServerCapacity exception with proper error message in the logs.
>
>
> Thanks,
>
> Sanjay Tripathi
>
>
Re: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for
XenServer.
Posted by Sanjay Tripathi <sa...@citrix.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17889/
-----------------------------------------------------------
(Updated Feb. 27, 2014, 12:35 p.m.)
Review request for cloudstack, Alex Huang, Devdeep Singh, and Koushik Das.
Changes
-------
Added the marvin tests and rebased the patch with latest master.
Bugs: CLOUDSTACK-4760 and CLOUDSTACK-4762
https://issues.apache.org/jira/browse/CLOUDSTACK-4760
https://issues.apache.org/jira/browse/CLOUDSTACK-4762
Repository: cloudstack-git
Description
-------
CLOUDSTACK-4760 : Enabling GPU support for XenServer.
CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
This feature is to enable the GPU-passthrough and vGPU functionality,
with the help of this feature, admins/users will be able to leverage
the GPU graphics unit power by deploying a virtul machine with GPU or
vGPU support or by changing the service offering of an existing VM
at any later point of time. There GPU/vGPU enabled VMs are able to run
graphical applications.
For now, this feature is only supported with XenServer hypervisor but
can be extended to add the support of other hypervisors.
Diffs (updated)
-----
api/src/com/cloud/agent/api/to/GPUDeviceTO.java PRE-CREATION
api/src/com/cloud/agent/api/to/VirtualMachineTO.java bed3e1d
api/src/com/cloud/gpu/GPU.java PRE-CREATION
api/src/org/apache/cloudstack/api/ApiConstants.java 7b7f9ca
api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 1d8cbff
api/src/org/apache/cloudstack/api/response/GpuResponse.java PRE-CREATION
api/src/org/apache/cloudstack/api/response/HostResponse.java e2d8eb5
api/src/org/apache/cloudstack/api/response/UserVmResponse.java 84d532b
api/src/org/apache/cloudstack/api/response/VgpuResponse.java PRE-CREATION
core/src/com/cloud/agent/api/GetGPUStatsAnswer.java PRE-CREATION
core/src/com/cloud/agent/api/GetGPUStatsCommand.java PRE-CREATION
core/src/com/cloud/agent/api/StartupRoutingCommand.java 626c87f
core/src/com/cloud/agent/api/StopCommand.java 6a29aa6
engine/components-api/src/com/cloud/resource/ResourceManager.java 95fb385
engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java d19fc38
engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 08efb83
engine/schema/src/com/cloud/gpu/HostGpuGroupsVO.java PRE-CREATION
engine/schema/src/com/cloud/gpu/VGPUTypesVO.java PRE-CREATION
engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDao.java PRE-CREATION
engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java PRE-CREATION
engine/schema/src/com/cloud/gpu/dao/VGPUTypesDao.java PRE-CREATION
engine/schema/src/com/cloud/gpu/dao/VGPUTypesDaoImpl.java PRE-CREATION
engine/schema/src/com/cloud/host/HostVO.java 56c066b
engine/schema/src/com/cloud/host/dao/HostDaoImpl.java 08a4366
engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java e1a1e93
plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java 48ae3ea
server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java b77f8ac
server/src/com/cloud/api/ApiDBUtils.java a23244b
server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1b95d9b
server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 08478e2
server/src/com/cloud/configuration/ConfigurationManagerImpl.java 1c1da1f
server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java 3c87b24
server/src/com/cloud/hypervisor/HypervisorGuruBase.java 7fb79fa
server/src/com/cloud/network/NetworkUsageManagerImpl.java e9b0393
server/src/com/cloud/resource/ResourceManagerImpl.java adad85c
server/src/com/cloud/server/ManagementServerImpl.java 2a08ddc
server/src/com/cloud/server/StatsCollector.java 548587c
server/src/com/cloud/storage/VolumeApiServiceImpl.java c95d316
server/src/com/cloud/vm/UserVmManagerImpl.java 97e3ae7
server/test/com/cloud/resource/MockResourceManagerImpl.java 5599e8c
server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java 751a3bd
server/test/resources/createNetworkOffering.xml c6228da
setup/db/db/schema-430to440.sql 0ded7a9
test/integration/smoke/test_deploy_vgpu_enabled_vm.py PRE-CREATION
tools/marvin/marvin/integration/lib/base.py 0a7ad94
ui/scripts/configuration.js 869b876
ui/scripts/instances.js 53c9e98
Diff: https://reviews.apache.org/r/17889/diff/
Testing
-------
Tests:
Hosts:
1) Add a XS hosts with GPU cards.
2) Create a pool of XS hosts with GPU cards.
3) Create a pool of XS hosts which are GPU enabled as well which are not enabled.
4) Checke the values in both the tables and verify the no. of GPU cards, remaining capacity etc.
5) Remove a host from a pool and the remaining capacity should get updated properly.
VM:
1) Create a compute offering with GPU/vGPU capability.
2) Deploy HVM OS with this service offering.
3) In case of successful start of VM, remaining capacity should get updated correspondingly.
4) Stop the VM and verify the capacity.
5) Destroy the VM and verify the capacity.
6) If the hosts does not have capacity to deploy a gpu enabled VM, then CS throws the InsufficientServerCapacity exception with proper error message in the logs.
Thanks,
Sanjay Tripathi
Re: Review Request 17889: CLOUDSTACK-4762: Enabling vGPU support for
XenServer.
Posted by Sanjay Tripathi <sa...@citrix.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17889/
-----------------------------------------------------------
(Updated Feb. 20, 2014, 8:24 a.m.)
Review request for cloudstack, Alex Huang, Devdeep Singh, and Koushik Das.
Changes
-------
Rebased with latest master.
Bugs: CLOUDSTACK-4760 and CLOUDSTACK-4762
https://issues.apache.org/jira/browse/CLOUDSTACK-4760
https://issues.apache.org/jira/browse/CLOUDSTACK-4762
Repository: cloudstack-git
Description
-------
CLOUDSTACK-4760 : Enabling GPU support for XenServer.
CLOUDSTACK-4762 : Enabling VGPU support for XenServer.
This feature is to enable the GPU-passthrough and vGPU functionality,
with the help of this feature, admins/users will be able to leverage
the GPU graphics unit power by deploying a virtul machine with GPU or
vGPU support or by changing the service offering of an existing VM
at any later point of time. There GPU/vGPU enabled VMs are able to run
graphical applications.
For now, this feature is only supported with XenServer hypervisor but
can be extended to add the support of other hypervisors.
Diffs (updated)
-----
api/src/com/cloud/agent/api/to/GPUDeviceTO.java PRE-CREATION
api/src/com/cloud/agent/api/to/VirtualMachineTO.java bed3e1d
api/src/com/cloud/gpu/GPU.java PRE-CREATION
api/src/org/apache/cloudstack/api/ApiConstants.java 3699102
api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java 6f9693c
api/src/org/apache/cloudstack/api/response/GpuResponse.java PRE-CREATION
api/src/org/apache/cloudstack/api/response/HostResponse.java e2d8eb5
api/src/org/apache/cloudstack/api/response/UserVmResponse.java 26ecb5b
api/src/org/apache/cloudstack/api/response/VgpuResponse.java PRE-CREATION
core/src/com/cloud/agent/api/GetGPUStatsAnswer.java PRE-CREATION
core/src/com/cloud/agent/api/GetGPUStatsCommand.java PRE-CREATION
core/src/com/cloud/agent/api/StartupRoutingCommand.java 626c87f
core/src/com/cloud/agent/api/StopCommand.java 6a29aa6
engine/components-api/src/com/cloud/resource/ResourceManager.java 95fb385
engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java 888c750
engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 08efb83
engine/schema/src/com/cloud/gpu/HostGpuGroupsVO.java PRE-CREATION
engine/schema/src/com/cloud/gpu/VGPUTypesVO.java PRE-CREATION
engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDao.java PRE-CREATION
engine/schema/src/com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java PRE-CREATION
engine/schema/src/com/cloud/gpu/dao/VGPUTypesDao.java PRE-CREATION
engine/schema/src/com/cloud/gpu/dao/VGPUTypesDaoImpl.java PRE-CREATION
engine/schema/src/com/cloud/host/HostVO.java 56c066b
engine/schema/src/com/cloud/host/dao/HostDaoImpl.java 08a4366
engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java e1a1e93
plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java 48ae3ea
server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java b77f8ac
server/src/com/cloud/api/ApiDBUtils.java a23244b
server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java 1b95d9b
server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 08478e2
server/src/com/cloud/configuration/ConfigurationManagerImpl.java 1c1da1f
server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java 3c87b24
server/src/com/cloud/hypervisor/HypervisorGuruBase.java 7fb79fa
server/src/com/cloud/network/NetworkUsageManagerImpl.java e9b0393
server/src/com/cloud/resource/ResourceManagerImpl.java 79eb1cb
server/src/com/cloud/server/ManagementServerImpl.java 2a08ddc
server/src/com/cloud/server/StatsCollector.java 548587c
server/src/com/cloud/storage/VolumeApiServiceImpl.java 614834e
server/src/com/cloud/vm/UserVmManagerImpl.java c53b95f
server/test/com/cloud/resource/MockResourceManagerImpl.java 5599e8c
server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java 751a3bd
server/test/resources/createNetworkOffering.xml c6228da
setup/db/db/schema-430to440.sql a98df26
ui/scripts/configuration.js 6adbade
ui/scripts/instances.js 53c9e98
Diff: https://reviews.apache.org/r/17889/diff/
Testing
-------
Tests:
Hosts:
1) Add a XS hosts with GPU cards.
2) Create a pool of XS hosts with GPU cards.
3) Create a pool of XS hosts which are GPU enabled as well which are not enabled.
4) Checke the values in both the tables and verify the no. of GPU cards, remaining capacity etc.
5) Remove a host from a pool and the remaining capacity should get updated properly.
VM:
1) Create a compute offering with GPU/vGPU capability.
2) Deploy HVM OS with this service offering.
3) In case of successful start of VM, remaining capacity should get updated correspondingly.
4) Stop the VM and verify the capacity.
5) Destroy the VM and verify the capacity.
6) If the hosts does not have capacity to deploy a gpu enabled VM, then CS throws the InsufficientServerCapacity exception with proper error message in the logs.
Thanks,
Sanjay Tripathi