[ https://issues.apache.org/jira/browse/CLOUDSTACK-9428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15363812#comment-15363812 ]
ASF GitHub Bot commented on CLOUDSTACK-9428: -------------------------------------------- Github user sateesh-chodapuneedi commented on a diff in the pull request: https://github.com/apache/cloudstack/pull/1605#discussion_r69677503 --- Diff: plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java --- @@ -2015,19 +2016,20 @@ protected StartAnswer execute(StartCommand cmd) { } /** - * Sets video card memory to the one provided in detail svga.vramSize (if provided). + * Sets video card memory to the one provided in detail svga.vramSize (if provided) on {@code vmConfigSpec}. * 64MB was always set before. * Size must be in KB. * @param vmMo virtual machine mo * @param vmSpec virtual machine specs + * @param vmConfigSpec virtual machine config spec */ - protected void postVideoCardMemoryConfigBeforeStart(VirtualMachineMO vmMo, VirtualMachineTO vmSpec) { + protected void videoCardMemoryConfig(VirtualMachineMO vmMo, VirtualMachineTO vmSpec, VirtualMachineConfigSpec vmConfigSpec) { String paramVRamSize = "svga.vramSize"; --- End diff -- 👍 Thanks @nvazquez for this PR. It indeed reduces additional API calls. I'd suggest few minor changes though. Please move this string constant "svga.vramSize" to VmDetailConstants which is place holder for VM detail constants. > Fix for CLOUDSTACK-9211 - Improve performance > --------------------------------------------- > > Key: CLOUDSTACK-9428 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9428 > Project: CloudStack > Issue Type: Improvement > Security Level: Public(Anyone can view this level - this is the > default.) > Components: VMware > Reporter: Nicolas Vazquez > Assignee: Nicolas Vazquez > > h3. Introduction > On [CLOUDSTACK-9211|https://issues.apache.org/jira/browse/CLOUDSTACK-9211] > passing vRAM size to support 3D GPU problem was addressed on VMware. It was > found out that it could be improved to increase performance by reducing extra > API calls, as we'll describe later > h3. Improvement > On WMware, {{VmwareResource}} manages execution of {{StartCommand}}. Before > sending power on command to ESXi hypervisor, vm is configured by calling > {{reconfigVMTask}} web method on vSphere's client {{VimPortType}} web service. > It was found out that we were using this method 2 times when passing vRAM > size, as it implied creating a new vm config spec only editing video card > specs and making an extra call to {{reconfigVMTask}}. > We propose reducing the extra web service call by adjusting vm's config spec. > This way video card gets properly configured (when passing vRAM size) in the > same configure call, increasing performance. > h3. Use case (passing vRAM size) > # Deploy a new VM, let its id be X > # Stop VM > # Execute SQL, where X is vm's id and Z is vRAM size (in kB): {code:sql} > INSERT INTO cloud.user_vm_details (vm_id, name, value) VALUES (X, > 'mks.enable3d', 'true'); > INSERT INTO cloud.user_vm_details (vm_id, name, value) VALUES (X, > 'mks.use3dRenderer', 'automatic'); > INSERT INTO cloud.user_vm_details (vm_id, name, value) VALUES (X, > 'svga.autodetect', 'false'); > INSERT INTO cloud.user_vm_details (vm_id, name, value) VALUES (X, > 'svga.vramSize', Z); > {code} > # Start VM -- This message was sent by Atlassian JIRA (v6.3.4#6332)