lkml.org 
[lkml]   [2016]   [Dec]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v2] KVM: x86: avoid redundant REQ_EVENT
From
Date


On 14/12/2016 11:59, Denis Plotnikov wrote:
>
> if ((exit_reason == EXIT_REASON_EXTERNAL_INTERRUPT)
> && nested_exit_intr_ack_set(vcpu)) {
> - int irq = kvm_cpu_get_interrupt(vcpu);
> + int irq = kvm_cpu_get_interrupt(vcpu, true);
> WARN_ON(irq < 0);

I think this is not needed, because all nested vmexits end with a KVM_REQ_EVENT:

/*
* the KVM_REQ_EVENT optimization bit is only on for one entry, and if
* we did not inject a still-pending event to L1 now because of
* nested_run_pending, we need to re-enable this bit.
*/
if (vmx->nested.nested_run_pending)
kvm_make_request(KVM_REQ_EVENT, vcpu);

This would allow you to always pass false from kvm_cpu_get_interrupt to
kvm_get_apic_interrupt. Not sure if the additional complication in vmx.c
is worth the simplification in lapic.c. Radim, second opinion? :)

Paolo

\
 
 \ /
  Last update: 2016-12-14 23:30    [W:0.063 / U:0.284 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site