[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <75b07c8e-b951-fdde-5429-27c9ef198dcc@redhat.com>
Date: Tue, 1 Feb 2022 18:19:29 +0100
From: Paolo Bonzini <pbonzini@...hat.com>
To: Wanpeng Li <kernellwp@...il.com>
Cc: LKML <linux-kernel@...r.kernel.org>, kvm <kvm@...r.kernel.org>,
Sean Christopherson <seanjc@...gle.com>,
Vitaly Kuznetsov <vkuznets@...hat.com>,
Wanpeng Li <wanpengli@...cent.com>,
Jim Mattson <jmattson@...gle.com>,
Joerg Roedel <joro@...tes.org>, Aili Yao <yaoaili@...gsoft.com>
Subject: Re: [PATCH RESEND v2] KVM: LAPIC: Enable timer posted-interrupt when
mwait/hlt is advertised
On 2/1/22 14:57, Wanpeng Li wrote:
> On Tue, 1 Feb 2022 at 20:11, Paolo Bonzini <pbonzini@...hat.com> wrote:
>>
>> On 1/25/22 13:08, Wanpeng Li wrote:
>>> As commit 0c5f81dad46 (KVM: LAPIC: Inject timer interrupt via posted interrupt)
>>> mentioned that the host admin should well tune the guest setup, so that vCPUs
>>> are placed on isolated pCPUs, and with several pCPUs surplus for*busy* housekeeping.
>>> It is better to disable mwait/hlt/pause vmexits to keep the vCPUs in non-root
>>> mode. However, we may isolate pCPUs for other purpose like DPDK or we can make
>>> some guests isolated and others not, we may lose vmx preemption timer/timer fastpath
>>> due to not well tuned setup, and the checking in kvm_can_post_timer_interrupt()
>>> is not enough. Let's guarantee mwait/hlt is advertised before enabling posted-interrupt
>>> interrupt. vmx preemption timer/timer fastpath can continue to work if both of them
>>> are not advertised.
>>
>> Is this the same thing that you meant?
>>
>> --------
>> As commit 0c5f81dad46 ("KVM: LAPIC: Inject timer interrupt via posted interrupt")
>> mentioned that the host admin should well tune the guest setup, so that vCPUs
>> are placed on isolated pCPUs, and with several pCPUs surplus for *busy* housekeeping.
>> In this setup, it is preferrable to disable mwait/hlt/pause vmexits to
>> keep the vCPUs in non-root mode.
>>
>> However, if only some guests isolated and others not, they would not have
>> any benefit from posted timer interrupts, and at the same time lose
>> VMX preemption timer fast paths because kvm_can_post_timer_interrupt()
>> returns true and therefore forces kvm_can_use_hv_timer() to false.
>>
>> By guaranteeing that posted-interrupt timer is only used if MWAIT or HLT
>> are done without vmexit, KVM can make a better choice and use the
>> VMX preemption timer and the corresponding fast paths.
>> --------
>
> Looks better, thanks Paolo! :)
Queued then, thanks!
Paolo
Powered by blists - more mailing lists