Re: [PATCH v4 12/26] KVM: x86: Move TSC fixup logic to KVM arch resume callback

From: Isaku Yamahata
Date: Sat Sep 10 2022 - 22:45:54 EST


On Fri, Sep 09, 2022 at 01:48:32PM +0800,
Chao Gao <chao.gao@xxxxxxxxx> wrote:

> On Thu, Sep 08, 2022 at 04:25:28PM -0700, isaku.yamahata@xxxxxxxxx wrote:
> >From: Isaku Yamahata <isaku.yamahata@xxxxxxxxx>
> >
> >commit 0dd6a6edb012 ("KVM: Dont mark TSC unstable due to S4 suspend") made
> >use of kvm_arch_hardware_enable() callback to detect that TSC goes backward
> >due to S4 suspend. It has to check it only when resuming from S4. Not
> >every time virtualization hardware ennoblement. Move the logic to
> >kvm_arch_resume() callback.
>
> IIUC, kvm_arch_resume() is called on the first CPU waking up from suspension.
> But the detection was done on every CPU. Is it a problem (i.e., we fail to
> detect TSC goes backward on some CPUs)?

The problem is, TSC fixup logic is only needed once on resuming.
The current code calls TSC fixup logic on each cpu onlining. It's quick
plumbing the logic to each cpu online. Although it won't harm to call the logic,
it's ugly and this time is good occasion to clean it up.

I will clarify the commit message.
--
Isaku Yamahata <isaku.yamahata@xxxxxxxxx>