All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Paul Durrant <pdurrant@amazon.co.uk>,
	Fred Griffoul <fgriffo@amazon.co.uk>,
	 Colin Percival <cperciva@tarsnap.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	 Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	 Dave Hansen <dave.hansen@linux.intel.com>,
	"x86@kernel.org" <x86@kernel.org>,
	 "H. Peter Anvin" <hpa@zytor.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	 "kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Graf (AWS), Alexander" <graf@amazon.de>,
	 Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>
Subject: Re: [PATCH v2 0/3] Support "generic" CPUID timing leaf as KVM guest and host
Date: Thu, 4 Sep 2025 04:59:44 -0700	[thread overview]
Message-ID: <aLl_MAk9AT5hRuoS@google.com> (raw)
In-Reply-To: <3268e953e14004d1786bf07c76ae52d98d0f8259.camel@infradead.org>

On Tue, Sep 02, 2025, David Woodhouse wrote:
> On Tue, 2025-09-02 at 10:49 -0700, Sean Christopherson wrote:
> > 
> > > So even if a VMM has set the TSC frequency VM-wide with KVM_SET_TSC_KHZ
> > > instead of doing it the old per- vCPU way, how can it get the results for a
> > > specific VM?
> > 
> > I don't see any need for userspace to query per-VM support.  What I'm proposing
> > is that KVM advertise the feature if the bare metal TSC is constant and the CPU
> > supports TSC scaling.  Beyond that, _KVM_ doesn't need to do anything to ensure
> > the guest sees a constant frequency, it's userspace's responsibility to provide
> > a sane configuration.
> > 
> > And strictly speaking, CPUID is per-CPU, i.e. it's architecturally legal to set
> > per-vCPU frequencies and then advertise a different frequency in CPUID for each
> > vCPU.  That's all but guaranteed to break guests as most/all kernels assume that
> > TSC operates at the same frequency on all CPUs, but as above, that's userspace's
> > responsibility to not screw up.
> 
> Sure, but doesn't that make this whole thing orthogonal to the original
> problem being solved? Because userspace still doesn't *know* the actual
> effective TSC frequency, whether it's scaled or not.

I thought the original problem being solved was that the _guest_ doesn't know the
effective TSC frequency?  Userspace can already get the effectively TSC frequency
via KVM_GET_TSC_KHZ, why do we need another uAPI to provide that?  (Honest question,
I feel like I'm missing something)

> Or are you suggesting that we add the leaf (with unscaled values) in
> KVM_GET_SUPPORTED_CPUID and *also* 'correct' the values if userspace
> does pass that leaf to its guests, as I had originally proposed?

The effective guest TSC frequency should be whatever is reported in KVM_GET_TSC_KHZ
when done on a vCPU, modulo temporarily skewed results without hardware scaling.
If that doesn't hold true, we should fix that.

  reply	other threads:[~2025-09-04 11:59 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-16 10:09 [PATCH v2 0/3] Support "generic" CPUID timing leaf as KVM guest and host David Woodhouse
2025-08-16 10:10 ` [PATCH v2 1/3] KVM: x86: Restore caching of KVM CPUID base David Woodhouse
2025-08-16 10:10 ` [PATCH v2 2/3] KVM: x86: Provide TSC frequency in "generic" timing infomation CPUID leaf David Woodhouse
2025-12-16 20:27   ` Sean Christopherson
2025-12-16 21:10     ` Doug Covelli
2025-12-16 22:59       ` Sean Christopherson
2025-08-16 10:10 ` [PATCH v2 3/3] x86/kvm: Obtain TSC frequency from CPUID if present David Woodhouse
2025-08-21 16:26 ` [PATCH v2 0/3] Support "generic" CPUID timing leaf as KVM guest and host Sean Christopherson
2025-08-21 17:37   ` David Woodhouse
2025-08-21 19:27     ` Sean Christopherson
2025-08-21 20:42       ` David Woodhouse
2025-08-21 20:48         ` Sean Christopherson
2025-08-21 21:10           ` David Woodhouse
2025-08-22  1:57             ` Colin Percival
2025-08-26 19:30               ` Sean Christopherson
2025-08-27  9:30                 ` David Woodhouse
2025-08-28 23:40                   ` Sean Christopherson
2025-08-29  9:50                     ` David Woodhouse
2025-08-29 11:08                       ` Durrant, Paul
2025-08-29 11:19                         ` David Woodhouse
2025-08-29 20:36                           ` Sean Christopherson
2025-09-02  8:31                             ` David Woodhouse
2025-09-02 17:49                               ` Sean Christopherson
2025-09-02 18:23                                 ` David Woodhouse
2025-09-04 11:59                                   ` Sean Christopherson [this message]
2025-09-04 12:14                                     ` David Woodhouse
2025-09-04 13:25                                       ` Sean Christopherson
2025-09-04 13:51                                         ` David Woodhouse
2025-09-05  7:57                                           ` Sean Christopherson
2025-08-22  1:57             ` Colin Percival

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=aLl_MAk9AT5hRuoS@google.com \
    --to=seanjc@google.com \
    --cc=ajay.kaher@broadcom.com \
    --cc=alexey.makhalov@broadcom.com \
    --cc=bp@alien8.de \
    --cc=cperciva@tarsnap.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=dwmw2@infradead.org \
    --cc=fgriffo@amazon.co.uk \
    --cc=graf@amazon.de \
    --cc=hpa@zytor.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=pdurrant@amazon.co.uk \
    --cc=tglx@linutronix.de \
    --cc=vkuznets@redhat.com \
    --cc=x86@kernel.org \
    /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.