]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: Introduce VIR_DOMAIN_TIMER_NAME_ARMVTIMER
authorAndrea Bolognani <abologna@redhat.com>
Thu, 6 Feb 2020 15:54:45 +0000 (16:54 +0100)
committerAndrea Bolognani <abologna@redhat.com>
Fri, 14 Feb 2020 11:09:07 +0000 (12:09 +0100)
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>
docs/schemas/domaincommon.rng
src/conf/domain_conf.c
src/conf/domain_conf.h
src/libxl/libxl_conf.c
src/libxl/xen_common.c
src/qemu/qemu_command.c
src/qemu/qemu_domain.c

index 9577d26c2a832979ace8d3d7fe1c9223688a2ac9..29b6b953573fa24aa4daec44d972b060b857b43b 100644 (file)
             <choice>
               <value>hpet</value>
               <value>pit</value>
+              <value>armvtimer</value>
             </choice>
           </attribute>
           <optional>
index de74a2a2d576df34e683759463a1b01249fcd988..7a0d126784b0e9c21996eff2575b38d3d4624418 100644 (file)
@@ -1063,6 +1063,7 @@ VIR_ENUM_IMPL(virDomainTimerName,
               "tsc",
               "kvmclock",
               "hypervclock",
+              "armvtimer",
 );
 
 VIR_ENUM_IMPL(virDomainTimerTrack,
index 2db3c19473605a1f2254f32a42555a5fc265a051..867a9c76617bd1ad765714a94e9695e1e7b4f167 100644 (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;
index ee6b23895c6e8d54d06ecf942f2e4e4854991393..56deca7b7c69bb36ee26480400920211309cbdb2 100644 (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));
index 415549a42c2203613eb78f602bba074b6b68a4dd..9a385eba0d0ca67a2a4791b70a1c897abdfd884b 100644 (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));
index 52a74c7acf6e0036571a7d8d04df97ad56d16b90..71ae1f72e54f497cba04f26b4f11b605382f58f1 100644 (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:
index 6fc0bd4e683ce650d93acb8634ce7990af4e1928..e1fe6e99a549c35548920f2a2728766ece66f45a 100644 (file)
@@ -5428,6 +5428,9 @@ qemuDomainDefValidateClockTimers(const virDomainDef *def,
                 return -1;
             }
             break;
+
+        case VIR_DOMAIN_TIMER_NAME_ARMVTIMER:
+            break;
         }
     }