mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-30 16:35:24 +00:00
Add global quota parameter necessary definitions
This parameter controls the maximum bandwidth to be used within a period for whole domain. Signed-off-by: Alexander Burluka <aburluka@virtuozzo.com>
This commit is contained in:
parent
4d92d58f2c
commit
55ecdae0fb
@ -674,6 +674,11 @@
|
||||
<ref name="cpuperiod"/>
|
||||
</element>
|
||||
</optional>
|
||||
<optional>
|
||||
<element name="global_quota">
|
||||
<ref name="cpuquota"/>
|
||||
</element>
|
||||
</optional>
|
||||
<optional>
|
||||
<element name="period">
|
||||
<ref name="cpuperiod"/>
|
||||
|
@ -319,6 +319,14 @@ typedef enum {
|
||||
*/
|
||||
# define VIR_DOMAIN_SCHEDULER_GLOBAL_PERIOD "global_period"
|
||||
|
||||
/**
|
||||
* VIR_DOMAIN_SCHEDULER_GLOBAL_QUOTA:
|
||||
*
|
||||
* Macro represents the maximum bandwidth to be used within a period for
|
||||
* whole domain, when using the posix scheduler, as an llong.
|
||||
*/
|
||||
# define VIR_DOMAIN_SCHEDULER_GLOBAL_QUOTA "global_quota"
|
||||
|
||||
/**
|
||||
* VIR_DOMAIN_SCHEDULER_VCPU_PERIOD:
|
||||
*
|
||||
@ -3354,6 +3362,14 @@ typedef void (*virConnectDomainEventMigrationIterationCallback)(virConnectPtr co
|
||||
*/
|
||||
# define VIR_DOMAIN_TUNABLE_CPU_GLOBAL_PERIOD "cputune.global_period"
|
||||
|
||||
/**
|
||||
* VIR_DOMAIN_TUNABLE_CPU_GLOBAL_QUOTA:
|
||||
*
|
||||
* Macro represents the maximum bandwidth to be used within a period for
|
||||
* whole domain, when using the posix scheduler, as VIR_TYPED_PARAM_LLONG.
|
||||
*/
|
||||
# define VIR_DOMAIN_TUNABLE_CPU_GLOBAL_QUOTA "cputune.global_quota"
|
||||
|
||||
/**
|
||||
* VIR_DOMAIN_TUNABLE_CPU_VCPU_PERIOD:
|
||||
*
|
||||
|
@ -15155,6 +15155,22 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (virXPathLongLong("string(./cputune/global_quota[1])", ctxt,
|
||||
&def->cputune.global_quota) < -1) {
|
||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||
_("can't parse cputune global quota value"));
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (def->cputune.global_quota > 0 &&
|
||||
(def->cputune.global_quota < 1000 ||
|
||||
def->cputune.global_quota > 18446744073709551LL)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("Value of cputune global quota must be in range "
|
||||
"[1000, 18446744073709551]"));
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (virXPathULongLong("string(./cputune/emulator_period[1])", ctxt,
|
||||
&def->cputune.emulator_period) < -1) {
|
||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||
@ -21673,6 +21689,9 @@ virDomainCputuneDefFormat(virBufferPtr buf,
|
||||
if (def->cputune.global_period)
|
||||
virBufferAsprintf(&childrenBuf, "<global_period>%llu</global_period>\n",
|
||||
def->cputune.global_period);
|
||||
if (def->cputune.global_quota)
|
||||
virBufferAsprintf(&childrenBuf, "<global_quota>%lld</global_quota>\n",
|
||||
def->cputune.global_quota);
|
||||
|
||||
if (def->cputune.emulator_period)
|
||||
virBufferAsprintf(&childrenBuf, "<emulator_period>%llu"
|
||||
|
@ -2113,6 +2113,7 @@ struct _virDomainCputune {
|
||||
unsigned long long period;
|
||||
long long quota;
|
||||
unsigned long long global_period;
|
||||
long long global_quota;
|
||||
unsigned long long emulator_period;
|
||||
long long emulator_quota;
|
||||
virBitmapPtr emulatorpin;
|
||||
|
Loading…
x
Reference in New Issue
Block a user