From: Vitaly Kuznetsov <vkuznets@redhat.com>
To: Sean Christopherson <seanjc@google.com>,
Anton Romanov <romanton@google.com>
Cc: kvm@vger.kernel.org, pbonzini@redhat.com
Subject: Re: [PATCH] KVM: x86: Use current rather than snapshotted TSC frequency if it is constant
Date: Tue, 19 Apr 2022 09:46:23 +0200 [thread overview]
Message-ID: <877d7l5xdc.fsf@redhat.com> (raw)
In-Reply-To: <Ylh3HNlcJd8+P+em@google.com>
Sean Christopherson <seanjc@google.com> writes:
> +Vitaly
>
> On Thu, Apr 14, 2022, Anton Romanov wrote:
...
>> @@ -8646,9 +8659,12 @@ static void tsc_khz_changed(void *data)
>> struct cpufreq_freqs *freq = data;
>> unsigned long khz = 0;
>>
>> + if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC))
>> + return;
>
> Vitaly,
>
> The Hyper-V guest code also sets cpu_tsc_khz, should we WARN if that notifier is
> invoked and Hyper-V told us there's a constant TSC?
>
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index ab336f7c82e4..ca8e20f5ffc0 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -8701,6 +8701,8 @@ static void kvm_hyperv_tsc_notifier(void)
> struct kvm *kvm;
> int cpu;
>
> + WARN_ON_ONCE(boot_cpu_has(X86_FEATURE_CONSTANT_TSC));
> +
> mutex_lock(&kvm_lock);
> list_for_each_entry(kvm, &vm_list, vm_list)
> kvm_make_mclock_inprogress_request(kvm);
>
(apologies for the delayed reply)
No, I think Hyper-V's "Reenlightenment" feature overrides (re-defines?)
X86_FEATURE_CONSTANT_TSC. E.g. I've checked a VM on E5-2667 v4
(Broadwell) CPU with no TSC scaling. This VM has 'constant_tsc' and will
certainly get reenlightenment irq on migration.
Note, Hyper-V has its own 'Invariant TSC control', see commit
dce7cd62754b5 ("x86/hyperv: Allow guests to enable InvariantTSC"). When
enabled, X86_FEATURE_TSC_RELIABLE is forced. I *think* (haven't checked
as I don't have two suitable hosts to test migration handy) this will
suppress reenlightenment so the check should be
WARN_ON_ONCE(boot_cpu_has(X86_FEATURE_TSC_RELIABLE));
instead. There is a chance that reenlightenment notifications still
arrive but the reported 'new' TSC frequency remains unchanged (silly,
but possible), I'll need to check.
--
Vitaly
next prev parent reply other threads:[~2022-04-19 7:46 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-14 18:31 [PATCH] KVM: x86: Use current rather than snapshotted TSC frequency if it is constant Anton Romanov
2022-04-14 19:33 ` Sean Christopherson
2022-04-14 20:42 ` Anton Romanov
2022-04-14 22:22 ` Sean Christopherson
2022-04-19 7:46 ` Vitaly Kuznetsov [this message]
2022-04-19 15:39 ` Sean Christopherson
2022-04-19 16:07 ` Vitaly Kuznetsov
2022-04-19 16:13 ` Sean Christopherson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877d7l5xdc.fsf@redhat.com \
--to=vkuznets@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=romanton@google.com \
--cc=seanjc@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.