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

Reply via email to