conf: Introduce VIR_DOMAIN_TIMER_NAME_ARMVTIMER

This new timer model will be used to control the behavior of the
virtual timer for KVM ARM/virt guests.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Andrea Bolognani 2020-02-06 16:54:45 +01:00
parent 204e2306e5
commit 3809e88a87
7 changed files with 10 additions and 0 deletions

View File

@ -1239,6 +1239,7 @@
<choice>
<value>hpet</value>
<value>pit</value>
<value>armvtimer</value>
</choice>
</attribute>
<optional>

View File

@ -1063,6 +1063,7 @@ VIR_ENUM_IMPL(virDomainTimerName,
"tsc",
"kvmclock",
"hypervclock",
"armvtimer",
);
VIR_ENUM_IMPL(virDomainTimerTrack,

View File

@ -1993,6 +1993,7 @@ typedef enum {
VIR_DOMAIN_TIMER_NAME_TSC,
VIR_DOMAIN_TIMER_NAME_KVMCLOCK,
VIR_DOMAIN_TIMER_NAME_HYPERVCLOCK,
VIR_DOMAIN_TIMER_NAME_ARMVTIMER,
VIR_DOMAIN_TIMER_NAME_LAST
} virDomainTimerNameType;

View File

@ -359,6 +359,7 @@ libxlMakeDomBuildInfo(virDomainDefPtr def,
case VIR_DOMAIN_TIMER_NAME_HYPERVCLOCK:
case VIR_DOMAIN_TIMER_NAME_RTC:
case VIR_DOMAIN_TIMER_NAME_PIT:
case VIR_DOMAIN_TIMER_NAME_ARMVTIMER:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unsupported timer type (name) '%s'"),
virDomainTimerNameTypeToString(clock.timers[i]->name));

View File

@ -2182,6 +2182,7 @@ xenFormatCPUFeatures(virConfPtr conf, virDomainDefPtr def)
case VIR_DOMAIN_TIMER_NAME_HYPERVCLOCK:
case VIR_DOMAIN_TIMER_NAME_RTC:
case VIR_DOMAIN_TIMER_NAME_PIT:
case VIR_DOMAIN_TIMER_NAME_ARMVTIMER:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unsupported timer type (name) '%s'"),
virDomainTimerNameTypeToString(def->clock.timers[i]->name));

View File

@ -6199,6 +6199,7 @@ qemuBuildClockCommandLine(virCommandPtr cmd,
case VIR_DOMAIN_TIMER_NAME_TSC:
case VIR_DOMAIN_TIMER_NAME_KVMCLOCK:
case VIR_DOMAIN_TIMER_NAME_HYPERVCLOCK:
case VIR_DOMAIN_TIMER_NAME_ARMVTIMER:
/* Timers above are handled when building -cpu. */
case VIR_DOMAIN_TIMER_NAME_LAST:
break;
@ -6609,6 +6610,7 @@ qemuBuildCpuCommandLine(virCommandPtr cmd,
if (timer->frequency > 0)
virBufferAsprintf(&buf, ",tsc-frequency=%lu", timer->frequency);
break;
case VIR_DOMAIN_TIMER_NAME_ARMVTIMER:
case VIR_DOMAIN_TIMER_NAME_PLATFORM:
case VIR_DOMAIN_TIMER_NAME_PIT:
case VIR_DOMAIN_TIMER_NAME_RTC:

View File

@ -5428,6 +5428,9 @@ qemuDomainDefValidateClockTimers(const virDomainDef *def,
return -1;
}
break;
case VIR_DOMAIN_TIMER_NAME_ARMVTIMER:
break;
}
}