Bug 1191119

Summary: CPU QoS limitation for small values not work correct
Product: Red Hat Enterprise Virtualization Manager Reporter: Artyom <alukiano>
Component: ovirt-engineAssignee: Roman Mohr <rmohr>
Status: CLOSED DUPLICATE QA Contact: Artyom <alukiano>
Severity: high Docs Contact:
Priority: high    
Version: 3.5.0CC: alukiano, asegundo, dfediuck, ecohen, gklein, lpeer, lsurette, mavital, rbalakri, rgolan, Rhev-m-bugs, yeylon
Target Milestone: ovirt-3.6.1   
Target Release: 3.6.1   
Hardware: x86_64   
OS: Linux   
Whiteboard: sla
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-10 15:11:07 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: SLA RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1278324, 1337834    
Bug Blocks:    

Description Artyom 2015-02-10 13:38:25 UTC
Description of problem:
Under specific conditions I can define parameters for formula of quota 
quota = (anchor*(#userSelection/100)) / #numOfVcpusInVm, when anchor=100000, by way that quota will be less that 1000(for example #userSelection=2 and #numOfVcpusInVm=4, in this case quota will be equal to 500), but in libvirt documentation I see that limitation for quota is [1000, 18446744073709551], so in this case it just drop some default value, for my case it equal to 25000.

Version-Release number of selected component (if applicable):
rhevm-3.5.0-0.31.el6ev.noarch
Checked for two versions of libvirt, so I believe that this issue exist for all versions:
libvirt-1.2.8-15.el7.x86_64

How reproducible:
Always

Steps to Reproduce:
1. Create cpu profile with limit equal to 2
2. Create vm with 4 cpu's
3. Run vm and check virsh -r dumpxml vm_name

Actual results:
<metadata>
    <ovirt:qos xmlns:ovirt="http://ovirt.org/vm/tune/1.0">
        <ovirt:vcpuLimit>2</ovirt:vcpuLimit>
</ovirt:qos>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <vcpu placement='static' current='4'>32</vcpu>
  <cputune>
    <shares>1020</shares>
    <period>12500</period>
    <quota>25000</quota>
  </cputune>
Quota equal to 25000(if calculate by formula it must be equal to 500)

Expected results:
By my opinion, if quota less that 1000, we can put just minimal acceptable value 1000 for quota parameter, also it can be a good idea to give to user some warning message.

Additional info:

Comment 1 Artyom 2015-02-10 15:08:37 UTC
Or we can change formula like I suggest under this bug: https://bugzilla.redhat.com/show_bug.cgi?id=1179592 and it will solve problem with lower bound

Comment 2 Amador Pahim 2015-08-27 14:00:49 UTC
Duplicate of BZ#1207610.

Comment 3 Roy Golan 2015-11-04 10:31:32 UTC
Artyom I think this was solved by a mom BZ like mentioned in comment 2 can you please verify?

Comment 4 Artyom 2015-11-05 09:32:51 UTC
Looks like now limitation not work at all, see dependencies.

Comment 5 Roman Mohr 2015-11-10 15:11:07 UTC
Was able to locally work around Bug 1278324. This bug is a duplicate of Bug 1207610. Both, vcpu_quota and vcpu_period have to be above or equal thousand and the implementation introduced by Bug 1207610 is fixing that.

*** This bug has been marked as a duplicate of bug 1207610 ***