61 lines
2.2 KiB
Diff
61 lines
2.2 KiB
Diff
|
From f141182484fca38685cb246f77e311643cd2f4c7 Mon Sep 17 00:00:00 2001
|
||
|
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||
|
Date: Fri, 7 Oct 2022 13:56:02 +0200
|
||
|
Subject: [PATCH] target/i386/kvm: fix kvmclock_current_nsec: Assertion
|
||
|
`time.tsc_timestamp <= migration_tsc' failed
|
||
|
|
||
|
RH-Author: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||
|
RH-MergeRequest: 120: target/i386/kvm: fix kvmclock_current_nsec: Assertion `time.tsc_timestamp <= migration_tsc' failed
|
||
|
RH-Bugzilla: 2108531
|
||
|
RH-Acked-by: Marcelo Tosatti <None>
|
||
|
RH-Acked-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||
|
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
||
|
RH-Commit: [1/1] edc5bb2578f7f31ab4d87e343925f6f08e812c29 (vkuznets/qemu-kvm-c9s)
|
||
|
|
||
|
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2108531
|
||
|
|
||
|
commit c4ef867f2949bf2a2ae18a4e27cf1a34bbc8aecb
|
||
|
Author: Ray Zhang <zhanglei002@gmail.com>
|
||
|
Date: Thu Sep 22 18:05:23 2022 +0800
|
||
|
|
||
|
target/i386/kvm: fix kvmclock_current_nsec: Assertion `time.tsc_timestamp <= migration_tsc' failed
|
||
|
|
||
|
New KVM_CLOCK flags were added in the kernel.(c68dc1b577eabd5605c6c7c08f3e07ae18d30d5d)
|
||
|
```
|
||
|
+ #define KVM_CLOCK_VALID_FLAGS \
|
||
|
+ (KVM_CLOCK_TSC_STABLE | KVM_CLOCK_REALTIME | KVM_CLOCK_HOST_TSC)
|
||
|
|
||
|
case KVM_CAP_ADJUST_CLOCK:
|
||
|
- r = KVM_CLOCK_TSC_STABLE;
|
||
|
+ r = KVM_CLOCK_VALID_FLAGS;
|
||
|
```
|
||
|
|
||
|
kvm_has_adjust_clock_stable needs to handle additional flags,
|
||
|
so that s->clock_is_reliable can be true and kvmclock_current_nsec doesn't need to be called.
|
||
|
|
||
|
Signed-off-by: Ray Zhang <zhanglei002@gmail.com>
|
||
|
Message-Id: <20220922100523.2362205-1-zhanglei002@gmail.com>
|
||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||
|
|
||
|
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||
|
---
|
||
|
target/i386/kvm/kvm.c | 2 +-
|
||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
|
||
|
index a9eba247a5..ba98b99d8f 100644
|
||
|
--- a/target/i386/kvm/kvm.c
|
||
|
+++ b/target/i386/kvm/kvm.c
|
||
|
@@ -157,7 +157,7 @@ bool kvm_has_adjust_clock_stable(void)
|
||
|
{
|
||
|
int ret = kvm_check_extension(kvm_state, KVM_CAP_ADJUST_CLOCK);
|
||
|
|
||
|
- return (ret == KVM_CLOCK_TSC_STABLE);
|
||
|
+ return (ret & KVM_CLOCK_TSC_STABLE);
|
||
|
}
|
||
|
|
||
|
bool kvm_has_adjust_clock(void)
|
||
|
--
|
||
|
2.37.3
|
||
|
|