提交 4d92d58f 编写于 作者: A Alexander Burluka 提交者: Daniel P. Berrange

Add global period definitions

This parameter represents top level period cgroup
that limits whole domain enforcement period for a quota
Signed-off-by: NAlexander Burluka <aburluka@virtuozzo.com>
上级 4b4fbfe4
......@@ -669,6 +669,11 @@
<ref name="cpushares"/>
</element>
</optional>
<optional>
<element name="global_period">
<ref name="cpuperiod"/>
</element>
</optional>
<optional>
<element name="period">
<ref name="cpuperiod"/>
......
......@@ -311,6 +311,14 @@ typedef enum {
*/
# define VIR_DOMAIN_SCHEDULER_CPU_SHARES "cpu_shares"
/**
* VIR_DOMAIN_SCHEDULER_GLOBAL_PERIOD:
*
* Macro represents the enforcement period for a quota, in microseconds,
* for whole domain, when using the posix scheduler, as a ullong.
*/
# define VIR_DOMAIN_SCHEDULER_GLOBAL_PERIOD "global_period"
/**
* VIR_DOMAIN_SCHEDULER_VCPU_PERIOD:
*
......@@ -3338,6 +3346,14 @@ typedef void (*virConnectDomainEventMigrationIterationCallback)(virConnectPtr co
*/
# define VIR_DOMAIN_TUNABLE_CPU_CPU_SHARES "cputune.cpu_shares"
/**
* VIR_DOMAIN_TUNABLE_CPU_GLOBAL_PERIOD:
*
* Macro represents the enforcement period for a quota, in microseconds,
* for whole domain, when using the posix scheduler, as VIR_TYPED_PARAM_ULLONG.
*/
# define VIR_DOMAIN_TUNABLE_CPU_GLOBAL_PERIOD "cputune.global_period"
/**
* VIR_DOMAIN_TUNABLE_CPU_VCPU_PERIOD:
*
......
......@@ -15140,6 +15140,21 @@ virDomainDefParseXML(xmlDocPtr xml,
goto error;
}
if (virXPathULongLong("string(./cputune/global_period[1])", ctxt,
&def->cputune.global_period) < -1) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("can't parse cputune global period value"));
goto error;
}
if (def->cputune.global_period > 0 &&
(def->cputune.global_period < 1000 || def->cputune.global_period > 1000000)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Value of cputune global period must be in range "
"[1000, 1000000]"));
goto error;
}
if (virXPathULongLong("string(./cputune/emulator_period[1])", ctxt,
&def->cputune.emulator_period) < -1) {
virReportError(VIR_ERR_XML_ERROR, "%s",
......@@ -21655,6 +21670,9 @@ virDomainCputuneDefFormat(virBufferPtr buf,
if (def->cputune.quota)
virBufferAsprintf(&childrenBuf, "<quota>%lld</quota>\n",
def->cputune.quota);
if (def->cputune.global_period)
virBufferAsprintf(&childrenBuf, "<global_period>%llu</global_period>\n",
def->cputune.global_period);
if (def->cputune.emulator_period)
virBufferAsprintf(&childrenBuf, "<emulator_period>%llu"
......
......@@ -2112,6 +2112,7 @@ struct _virDomainCputune {
bool sharesSpecified;
unsigned long long period;
long long quota;
unsigned long long global_period;
unsigned long long emulator_period;
long long emulator_quota;
virBitmapPtr emulatorpin;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册