Re: [v3 0/6] KVM: arm64: implement vcpu_is_preempted check

From: Marc Zyngier
Date: Tue Feb 14 2023 - 11:50:45 EST


On Tue, 14 Feb 2023 16:06:26 +0000,
Usama Arif <usama.arif@xxxxxxxxxxxxx> wrote:
>
>
>
> On 17/01/2023 10:29, Usama Arif wrote:
> > This patchset adds support for vcpu_is_preempted in arm64, which allows the guest
> > to check if a vcpu was scheduled out, which is useful to know incase it was
> > holding a lock. vcpu_is_preempted is well integrated in core kernel code and can
> > be used to improve performance in locking (owner_on_cpu usage in mutex_spin_on_owner,
> > mutex_can_spin_on_owner, rtmutex_spin_on_owner and osq_lock) and scheduling
> > (available_idle_cpu which is used in several places in kernel/sched/fair.c
> > for e.g. in wake_affine to determine which CPU can run soonest).
> >
> > This patchset shows significant improvement on overcommitted hosts (vCPUs > pCPUS),
> > as waiting for preempted vCPUs reduces performance.
> >
>
> Hi,
>
> Just wanted to check if there are any comments for this?

Not a lot, I'm afraid. My concerns with this thing are still the same:

- it is KVM-specific
- it doesn't work with nested virtualisation
- its correctness is unproven on arm64

I'm also not going to entertain any of this without the core arm64
maintainers saying that they will enable this.

Thanks,

M.

--
Without deviation from the norm, progress is not possible.