-----------------------------------------------------------
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