From: Michal Privoznik <mprivozn@redhat.com> QEMU supports this enlightenment since version 2.0. It's required by some other enlightenments (e.g. hv-stimer, hv-stimer-direct). From QEMU docs: ``hv-time`` Enables two Hyper-V-specific clocksources available to the guest: MSR-based Hyper-V clocksource (HV_X64_MSR_TIME_REF_COUNT, 0x40000020) and Reference TSC page (enabled via MSR HV_X64_MSR_REFERENCE_TSC, 0x40000021). Both clocksources are per-guest, Reference TSC page clocksource allows for exit-less time stamp readings. Using this enlightenment leads to significant speedup of all timestamp related operations. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- docs/formatdomain.rst | 2 ++ src/conf/domain_conf.c | 4 ++++ src/conf/domain_conf.h | 1 + src/conf/schemas/domaincommon.rng | 5 +++++ src/cpu/cpu_x86.c | 5 +++++ src/cpu/cpu_x86_data.h | 1 + src/libxl/libxl_conf.c | 4 ++++ src/qemu/qemu_command.c | 1 + src/qemu/qemu_process.c | 1 + tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml | 1 + tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml | 1 + tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml | 1 + tests/domaincapsdata/qemu_10.0.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml | 1 + tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml | 1 + tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml | 1 + tests/domaincapsdata/qemu_10.1.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_10.2.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml | 1 + tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml | 1 + tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml | 1 + tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml | 1 + tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_10.1.0_x86_64+inteltdx.xml | 1 + tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml | 1 + tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml | 1 + tests/qemuxmlconfdata/hyperv.x86_64-latest.args | 2 +- tests/qemuxmlconfdata/hyperv.x86_64-latest.xml | 1 + tests/qemuxmlconfdata/hyperv.xml | 1 + 60 files changed, 75 insertions(+), 1 deletion(-) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index f50dce477f..473233c5d1 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -2078,6 +2078,7 @@ Hypervisors may allow certain CPU / machine features to be toggled on/off. <evmcs state='on'/> <emsr_bitmap state='on'/> <xmm_input state='on'/> + <time state='on'/> </hyperv> <kvm> <hidden state='on'/> @@ -2170,6 +2171,7 @@ are: avic Enable use Hyper-V SynIC with hardware APICv/AVIC on, off :since:`8.10.0 (QEMU 6.2)` emsr_bitmap Avoid unnecessary updates to L2 MSR Bitmap upon vmexits. on, off :since:`10.7.0 (QEMU 7.1)` xmm_input Enable XMM Fast Hypercall Input on, off :since:`10.7.0 (QEMU 7.1)` + time Enables Hyper-V-specific clocksources on, off :since:`11.9.0 (QEMU 2.0)` =============== ====================================================================== ============================================ ======================================================================== :since:`Since 8.0.0 (QEMU) Since 11.3.0 (Xen)`, the hypervisor can be diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 99ed633836..1df781545a 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -215,6 +215,7 @@ VIR_ENUM_IMPL(virDomainHyperv, "avic", "emsr_bitmap", "xmm_input", + "time", ); VIR_ENUM_IMPL(virDomainKVM, @@ -17072,6 +17073,7 @@ virDomainFeaturesHyperVDefParse(virDomainDef *def, case VIR_DOMAIN_HYPERV_AVIC: case VIR_DOMAIN_HYPERV_EMSR_BITMAP: case VIR_DOMAIN_HYPERV_XMM_INPUT: + case VIR_DOMAIN_HYPERV_TIME: break; case VIR_DOMAIN_HYPERV_TLBFLUSH: @@ -21648,6 +21650,7 @@ virDomainDefFeaturesCheckABIStability(virDomainDef *src, case VIR_DOMAIN_HYPERV_AVIC: case VIR_DOMAIN_HYPERV_EMSR_BITMAP: case VIR_DOMAIN_HYPERV_XMM_INPUT: + case VIR_DOMAIN_HYPERV_TIME: if (src->hyperv.features[i] != dst->hyperv.features[i]) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("State of HyperV enlightenment feature '%1$s' differs: source: '%2$s', destination: '%3$s'"), @@ -28626,6 +28629,7 @@ virDomainFeaturesHyperVDefFormat(virBuffer *buf, case VIR_DOMAIN_HYPERV_AVIC: case VIR_DOMAIN_HYPERV_EMSR_BITMAP: case VIR_DOMAIN_HYPERV_XMM_INPUT: + case VIR_DOMAIN_HYPERV_TIME: break; case VIR_DOMAIN_HYPERV_SPINLOCKS: diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index fe6ea63bd9..d156f11de3 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2262,6 +2262,7 @@ typedef enum { VIR_DOMAIN_HYPERV_AVIC, VIR_DOMAIN_HYPERV_EMSR_BITMAP, VIR_DOMAIN_HYPERV_XMM_INPUT, + VIR_DOMAIN_HYPERV_TIME, VIR_DOMAIN_HYPERV_LAST } virDomainHyperv; diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng index b9230a35b4..0fe9e711eb 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -8134,6 +8134,11 @@ <ref name="featurestate"/> </element> </optional> + <optional> + <element name="time"> + <ref name="featurestate"/> + </element> + </optional> </interleave> </group> </choice> diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index 0f7eb8f48b..fa74b46386 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -116,6 +116,10 @@ KVM_FEATURE_DEF(VIR_CPU_x86_HV_TLBFLUSH_EXT, KVM_FEATURE_DEF(VIR_CPU_x86_HV_EMSR_BITMAP, 0x4000000A, 0x00080000, 0x0); +KVM_FEATURE_DEF(VIR_CPU_x86_HV_TIME, + 0x40000003, 0x00000202, 0x0); + + static virCPUx86Feature x86_kvm_features[] = { KVM_FEATURE(VIR_CPU_x86_KVM_PV_UNHALT), @@ -137,6 +141,7 @@ static virCPUx86Feature x86_kvm_features[] = KVM_FEATURE(VIR_CPU_x86_HV_EMSR_BITMAP), KVM_FEATURE(VIR_CPU_x86_HV_TLBFLUSH_DIRECT), KVM_FEATURE(VIR_CPU_x86_HV_TLBFLUSH_EXT), + KVM_FEATURE(VIR_CPU_x86_HV_TIME), }; typedef struct _virCPUx86Signature virCPUx86Signature; diff --git a/src/cpu/cpu_x86_data.h b/src/cpu/cpu_x86_data.h index 448acbbeb2..55376e2891 100644 --- a/src/cpu/cpu_x86_data.h +++ b/src/cpu/cpu_x86_data.h @@ -66,6 +66,7 @@ struct _virCPUx86MSR { #define VIR_CPU_x86_HV_EVMCS "hv-evmcs" #define VIR_CPU_x86_HV_AVIC "hv-avic" #define VIR_CPU_x86_HV_EMSR_BITMAP "hv-emsr_bitmap" +#define VIR_CPU_x86_HV_TIME "hv-time" /* Hyper-V Synthetic Timer option */ #define VIR_CPU_x86_HV_STIMER_DIRECT "hv-stimer-direct" diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 875e9441a2..83ca803a93 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -647,6 +647,10 @@ libxlMakeDomBuildInfo(virDomainDef *def, libxl_bitmap_set(&b_info->u.hvm.viridian_enable, LIBXL_VIRIDIAN_ENLIGHTENMENT_HCALL_IPI); break; + case VIR_DOMAIN_HYPERV_TIME: + libxl_bitmap_set(&b_info->u.hvm.viridian_enable, + LIBXL_VIRIDIAN_ENLIGHTENMENT_TIME_REF_COUNT); + break; case VIR_DOMAIN_HYPERV_SPINLOCKS: case VIR_DOMAIN_HYPERV_VENDOR_ID: VIR_WARN("Hyper-v flag '%s' specified per-domain but is a global Xen setting and will be ignored.", diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index ffe24ae256..7bb56e0b13 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6492,6 +6492,7 @@ qemuBuildCpuHypervCommandLine(virBuffer *buf, case VIR_DOMAIN_HYPERV_AVIC: case VIR_DOMAIN_HYPERV_EMSR_BITMAP: case VIR_DOMAIN_HYPERV_XMM_INPUT: + case VIR_DOMAIN_HYPERV_TIME: if (def->hyperv.features[i] == VIR_TRISTATE_SWITCH_ON) { const char *name = virDomainHypervTypeToString(i); g_autofree char *full_name = g_strdup_printf("hv-%s", name); diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 02a03a7ce2..0a9da32806 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -4490,6 +4490,7 @@ qemuProcessVerifyHypervFeatures(virDomainDef *def, case VIR_DOMAIN_HYPERV_AVIC: case VIR_DOMAIN_HYPERV_EMSR_BITMAP: case VIR_DOMAIN_HYPERV_XMM_INPUT: + case VIR_DOMAIN_HYPERV_TIME: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("host doesn't support hyperv '%1$s' feature"), virDomainHypervTypeToString(i)); diff --git a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml index ec2944d380..067043ca0a 100644 --- a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml @@ -860,6 +860,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml index abe4536c18..ea54c0129c 100644 --- a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml @@ -1715,6 +1715,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml index 481092d7b1..06f95eeb8c 100644 --- a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml @@ -1829,6 +1829,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml index 3bec568edf..947ce507a1 100644 --- a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml @@ -1823,6 +1823,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml b/tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml index 818876eb89..f5320b34cb 100644 --- a/tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml @@ -860,6 +860,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_10.0.0.x86_64.xml b/tests/domaincapsdata/qemu_10.0.0.x86_64.xml index c9c89b202b..6de4d75bf5 100644 --- a/tests/domaincapsdata/qemu_10.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.0.0.x86_64.xml @@ -1715,6 +1715,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml index e7b1e4d1ae..a7cf98efe1 100644 --- a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml +++ b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml @@ -772,6 +772,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml index 9c832a7bfd..b2b202930b 100644 --- a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml @@ -1740,6 +1740,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml index b0eb35c6c8..22dc113f25 100644 --- a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml +++ b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml @@ -1819,6 +1819,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml index fb6540b94a..31d8f0e180 100644 --- a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml @@ -1820,6 +1820,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml b/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml index 468dc22ce9..e0e25845ce 100644 --- a/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml +++ b/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml @@ -772,6 +772,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_10.1.0.x86_64.xml b/tests/domaincapsdata/qemu_10.1.0.x86_64.xml index df171bb5d7..6cb9e85891 100644 --- a/tests/domaincapsdata/qemu_10.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.1.0.x86_64.xml @@ -1740,6 +1740,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml index 96b443899a..d5ebd666dd 100644 --- a/tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml @@ -993,6 +993,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml index fb6540b94a..31d8f0e180 100644 --- a/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml @@ -1820,6 +1820,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_10.2.0.x86_64.xml b/tests/domaincapsdata/qemu_10.2.0.x86_64.xml index 1deb00fff3..c9e8a75447 100644 --- a/tests/domaincapsdata/qemu_10.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.2.0.x86_64.xml @@ -993,6 +993,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml index 8a5277934d..6b768359d9 100644 --- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml @@ -1261,6 +1261,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml index 9348304998..a3b17340f3 100644 --- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml @@ -1754,6 +1754,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml index f68a87f2e0..1713cdd45f 100644 --- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml @@ -1261,6 +1261,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml index a9a113326a..d69b133b85 100644 --- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml @@ -1519,6 +1519,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml index f1f41fbe96..26035cab3a 100644 --- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml @@ -1775,6 +1775,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml index 13541e8421..8bcbdf2b4e 100644 --- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml @@ -1519,6 +1519,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml index dabdf47c6b..dfb7649215 100644 --- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml @@ -1521,6 +1521,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml index 7538570678..55bddc1994 100644 --- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml @@ -1742,6 +1742,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml index ffcfc42b08..864191192d 100644 --- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml @@ -1521,6 +1521,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml index 7289d5fbdc..c461130aa8 100644 --- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml @@ -1521,6 +1521,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml index 141edc67f3..768f514bbe 100644 --- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml @@ -1671,6 +1671,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml index 5a636f06a8..48718fabe4 100644 --- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml @@ -1521,6 +1521,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml index 4003af73de..9c9cd38985 100644 --- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml @@ -1657,6 +1657,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml index 2fdeeb143a..ed80e0de2a 100644 --- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml @@ -1776,6 +1776,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml index ba78d5d24d..533c67076b 100644 --- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml @@ -1657,6 +1657,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml index 099c503551..fb69eb796e 100644 --- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml @@ -860,6 +860,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml index f83af00819..d3bd610a8f 100644 --- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml @@ -1715,6 +1715,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml index 28b9647f14..e51ab99b23 100644 --- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml @@ -1829,6 +1829,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml index f3469cdade..4fb4f9857a 100644 --- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml @@ -1823,6 +1823,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml index 462365ee12..a365837e99 100644 --- a/tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml @@ -860,6 +860,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml index 756e2cf90a..9e9c278708 100644 --- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml @@ -1715,6 +1715,7 @@ <value>avic</value> <value>emsr_bitmap</value> <value>xmm_input</value> + <value>time</value> </enum> <defaults> <spinlocks>4095</spinlocks> diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml index e410e11dbe..3b427d5e1e 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml +++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml @@ -3374,6 +3374,7 @@ <cap name='avic'/> <cap name='emsr_bitmap'/> <cap name='xmm_input'/> + <cap name='time'/> <spinlocks>4095</spinlocks> <stimer_direct>on</stimer_direct> <tlbflush_direct>on</tlbflush_direct> diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml index 6b50ff6249..685d199b25 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml @@ -4223,6 +4223,7 @@ <cap name='avic'/> <cap name='emsr_bitmap'/> <cap name='xmm_input'/> + <cap name='time'/> <spinlocks>4095</spinlocks> <stimer_direct>on</stimer_direct> <tlbflush_direct>on</tlbflush_direct> diff --git a/tests/qemucapabilitiesdata/caps_10.1.0_x86_64+inteltdx.xml b/tests/qemucapabilitiesdata/caps_10.1.0_x86_64+inteltdx.xml index 3d5d53d3e7..a17e7ac4b8 100644 --- a/tests/qemucapabilitiesdata/caps_10.1.0_x86_64+inteltdx.xml +++ b/tests/qemucapabilitiesdata/caps_10.1.0_x86_64+inteltdx.xml @@ -3581,6 +3581,7 @@ <cap name='avic'/> <cap name='emsr_bitmap'/> <cap name='xmm_input'/> + <cap name='time'/> <spinlocks>4095</spinlocks> <stimer_direct>on</stimer_direct> <tlbflush_direct>on</tlbflush_direct> diff --git a/tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml index 9628c5c999..7a58fb6633 100644 --- a/tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml @@ -4899,6 +4899,7 @@ <cap name='avic'/> <cap name='emsr_bitmap'/> <cap name='xmm_input'/> + <cap name='time'/> <spinlocks>4095</spinlocks> <stimer_direct>on</stimer_direct> <tlbflush_direct>on</tlbflush_direct> diff --git a/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml index 4245fa14de..5502aba78b 100644 --- a/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml @@ -3944,6 +3944,7 @@ <cap name='avic'/> <cap name='emsr_bitmap'/> <cap name='xmm_input'/> + <cap name='time'/> <spinlocks>4095</spinlocks> <stimer_direct>on</stimer_direct> <tlbflush_direct>on</tlbflush_direct> diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml index f0053a9742..9793a72670 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml @@ -3453,6 +3453,7 @@ <cap name='avic'/> <cap name='emsr_bitmap'/> <cap name='xmm_input'/> + <cap name='time'/> <spinlocks>4095</spinlocks> <stimer_direct>on</stimer_direct> <tlbflush_direct>off</tlbflush_direct> diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml index c8782763aa..dd195fcadf 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml @@ -3782,6 +3782,7 @@ <cap name='avic'/> <cap name='emsr_bitmap'/> <cap name='xmm_input'/> + <cap name='time'/> <spinlocks>4095</spinlocks> <stimer_direct>on</stimer_direct> <tlbflush_direct>on</tlbflush_direct> diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml index 21f40b7f5a..bd720eb273 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml @@ -3756,6 +3756,7 @@ <cap name='avic'/> <cap name='emsr_bitmap'/> <cap name='xmm_input'/> + <cap name='time'/> <spinlocks>4095</spinlocks> <stimer_direct>on</stimer_direct> <tlbflush_direct>on</tlbflush_direct> diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml index 5ec8321bf2..f3679f4a99 100644 --- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml @@ -3692,6 +3692,7 @@ <cap name='avic'/> <cap name='emsr_bitmap'/> <cap name='xmm_input'/> + <cap name='time'/> <spinlocks>4095</spinlocks> <stimer_direct>on</stimer_direct> <tlbflush_direct>on</tlbflush_direct> diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml index 4c0d5a28f9..e7ea9c278e 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml @@ -3949,6 +3949,7 @@ <cap name='avic'/> <cap name='emsr_bitmap'/> <cap name='xmm_input'/> + <cap name='time'/> <spinlocks>4095</spinlocks> <stimer_direct>on</stimer_direct> <tlbflush_direct>on</tlbflush_direct> diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml index 6caddd450f..9b38dea8f5 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml +++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml @@ -3123,6 +3123,7 @@ <cap name='avic'/> <cap name='emsr_bitmap'/> <cap name='xmm_input'/> + <cap name='time'/> <spinlocks>4095</spinlocks> <stimer_direct>on</stimer_direct> <tlbflush_direct>on</tlbflush_direct> diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml index 665b82560c..cc099fff40 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml @@ -3930,6 +3930,7 @@ <cap name='avic'/> <cap name='emsr_bitmap'/> <cap name='xmm_input'/> + <cap name='time'/> <spinlocks>4095</spinlocks> <stimer_direct>on</stimer_direct> <tlbflush_direct>on</tlbflush_direct> diff --git a/tests/qemuxmlconfdata/hyperv.x86_64-latest.args b/tests/qemuxmlconfdata/hyperv.x86_64-latest.args index 5a32b80e71..d952b045c1 100644 --- a/tests/qemuxmlconfdata/hyperv.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hyperv.x86_64-latest.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ -machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=on \ -accel tcg \ --cpu 'qemu64,hv-relaxed=on,hv-vapic=on,hv-spinlocks=0x2fff,hv-vpindex=on,hv-runtime=on,hv-synic=on,hv-stimer=on,hv-reset=on,hv-vendor-id=KVM Hv,hv-frequencies=on,hv-reenlightenment=on,hv-tlbflush=on,hv-tlbflush-direct=on,hv-tlbflush-ext=on,hv-ipi=on,hv-evmcs=on,hv-avic=on,hv-emsr-bitmap=on,hv-xmm-input=on' \ +-cpu 'qemu64,hv-relaxed=on,hv-vapic=on,hv-spinlocks=0x2fff,hv-vpindex=on,hv-runtime=on,hv-synic=on,hv-stimer=on,hv-reset=on,hv-vendor-id=KVM Hv,hv-frequencies=on,hv-reenlightenment=on,hv-tlbflush=on,hv-tlbflush-direct=on,hv-tlbflush-ext=on,hv-ipi=on,hv-evmcs=on,hv-avic=on,hv-emsr-bitmap=on,hv-xmm-input=on,hv-time=on' \ -m size=219136k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \ -overcommit mem-lock=off \ diff --git a/tests/qemuxmlconfdata/hyperv.x86_64-latest.xml b/tests/qemuxmlconfdata/hyperv.x86_64-latest.xml index 49537188af..8c5af681c6 100644 --- a/tests/qemuxmlconfdata/hyperv.x86_64-latest.xml +++ b/tests/qemuxmlconfdata/hyperv.x86_64-latest.xml @@ -31,6 +31,7 @@ <avic state='on'/> <emsr_bitmap state='on'/> <xmm_input state='on'/> + <time state='on'/> </hyperv> </features> <cpu mode='custom' match='exact' check='none'> diff --git a/tests/qemuxmlconfdata/hyperv.xml b/tests/qemuxmlconfdata/hyperv.xml index 8c323f6578..8cd83da4ec 100644 --- a/tests/qemuxmlconfdata/hyperv.xml +++ b/tests/qemuxmlconfdata/hyperv.xml @@ -31,6 +31,7 @@ <avic state='on'/> <emsr_bitmap state='on'/> <xmm_input state='on'/> + <time state='on'/> </hyperv> </features> <clock offset='utc'/> -- 2.49.1