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