kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFC untested] kvm/x86: implement hv EOI assist
@ 2014-04-13 13:10 Michael S. Tsirkin
  2014-04-21 21:40 ` Marcelo Tosatti
  0 siblings, 1 reply; 8+ messages in thread
From: Michael S. Tsirkin @ 2014-04-13 13:10 UTC (permalink / raw)
  To: Ronen Hod; +Cc: vrozenfe, pbonzini, kvm

It seems that it's easy to implement the EOI assist
on top of the PV EOI feature: simply convert the
page address to the format expected by PV EOI.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

---

Warning: untested! As I'll be off-line for a couple of days,
sending this out for early review.
Review/comments/flames/testing reports welcome.

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 8ae1ff5..d84d750fc 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1890,6 +1890,8 @@ static int set_msr_hyperv(struct kvm_vcpu *vcpu, u32 msr, u64 data)
 
 		if (!(data & HV_X64_MSR_APIC_ASSIST_PAGE_ENABLE)) {
 			vcpu->arch.hv_vapic = data;
+			if (kvm_lapic_enable_pv_eoi(vcpu, 0))
+				return 1;
 			break;
 		}
 		gfn = data >> HV_X64_MSR_APIC_ASSIST_PAGE_ADDRESS_SHIFT;
@@ -1900,6 +1902,8 @@ static int set_msr_hyperv(struct kvm_vcpu *vcpu, u32 msr, u64 data)
 			return 1;
 		vcpu->arch.hv_vapic = data;
 		mark_page_dirty(vcpu->kvm, gfn);
+		if (kvm_lapic_enable_pv_eoi(vcpu, gfn_to_gpa(gfn) | KVM_MSR_ENABLED))
+			return 1;
 		break;
 	}
 	case HV_X64_MSR_EOI:

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-04-23 18:30 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-13 13:10 [PATCH RFC untested] kvm/x86: implement hv EOI assist Michael S. Tsirkin
2014-04-21 21:40 ` Marcelo Tosatti
2014-04-22  9:11   ` Michael S. Tsirkin
2014-04-22 19:26     ` Marcelo Tosatti
2014-04-22 22:12       ` Michael S. Tsirkin
2014-04-23  1:57         ` Marcelo Tosatti
2014-04-23  5:52           ` Michael S. Tsirkin
2014-04-23 18:30             ` Marcelo Tosatti

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).