Re: [PATCH v3 1/4] KVM: LAPIC: Make lapic timer unpinned when timer is injected by pi

From: Marcelo Tosatti
Date: Tue Jun 11 2019 - 16:44:28 EST

On Tue, Jun 11, 2019 at 08:17:06PM +0800, Wanpeng Li wrote:
> From: Wanpeng Li <wanpengli@xxxxxxxxxxx>
> Make lapic timer unpinned when timer is injected by posted-interrupt,
> the emulated timer can be offload to the housekeeping cpus.
> The host admin should fine tuned, e.g. dedicated instances scenario
> w/ nohz_full cover the pCPUs which vCPUs resident, several pCPUs
> surplus for housekeeping, disable mwait/hlt/pause vmexits to occupy
> the pCPUs, fortunately preemption timer is disabled after mwait is
> exposed to guest which makes emulated timer offload can be possible.



I think you can drop the HRTIMER_MODE_ABS_PINNED and
instead have

void kvm_set_pending_timer(struct kvm_vcpu *vcpu)
kvm_make_request(KVM_REQ_PENDING_TIMER, vcpu);

As an alternative to commit 61abdbe0bcc2b32745ab4479cc550f4c1f518ee2
(as a first patch in your series).

This will make the logic simpler (and timer migration, for
nonhousekeeping case, ensures timer is migrated).

Also, should make this work for non housekeeping case as well.
(But that can be done later).