mirror of https://gitee.com/openkylin/linux.git
KVM: VMX: Use x2apic_mode to avoid RDMSR when querying PI state
Use x2apic_mode instead of x2apic_enabled() when adjusting the destination ID during Posted Interrupt updates. This avoids the costly RDMSR that is hidden behind x2apic_enabled(). Reported-by: luferry <luferry@163.com> Signed-off-by: Sean Christopherson <seanjc@google.com> Message-Id: <20210115220354.434807-3-seanjc@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
db7d8e4768
commit
563c54c4d5
|
@ -54,7 +54,7 @@ void vmx_vcpu_pi_load(struct kvm_vcpu *vcpu, int cpu)
|
|||
|
||||
dest = cpu_physical_id(cpu);
|
||||
|
||||
if (x2apic_enabled())
|
||||
if (x2apic_mode)
|
||||
new.ndst = dest;
|
||||
else
|
||||
new.ndst = (dest << 8) & 0xFF00;
|
||||
|
@ -104,7 +104,7 @@ static void __pi_post_block(struct kvm_vcpu *vcpu)
|
|||
|
||||
dest = cpu_physical_id(vcpu->cpu);
|
||||
|
||||
if (x2apic_enabled())
|
||||
if (x2apic_mode)
|
||||
new.ndst = dest;
|
||||
else
|
||||
new.ndst = (dest << 8) & 0xFF00;
|
||||
|
@ -174,7 +174,7 @@ int pi_pre_block(struct kvm_vcpu *vcpu)
|
|||
*/
|
||||
dest = cpu_physical_id(vcpu->pre_pcpu);
|
||||
|
||||
if (x2apic_enabled())
|
||||
if (x2apic_mode)
|
||||
new.ndst = dest;
|
||||
else
|
||||
new.ndst = (dest << 8) & 0xFF00;
|
||||
|
|
Loading…
Reference in New Issue