Queuing the vector causes a spin when injection and window-exit are coincident.
Signed-off-by: Avi Kivity <[EMAIL PROTECTED]>
Acked-by: Gregory Haskins <[EMAIL PROTECTED]>
---
drivers/kvm/svm.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/drivers/kvm/svm.c b/drivers/kvm/svm.c
index bdc5d98..f81f3a2 100644
--- a/drivers/kvm/svm.c
+++ b/drivers/kvm/svm.c
@@ -1425,11 +1425,16 @@ static void do_intr_requests(struct kvm_vcpu *vcpu,
if (ack.flags & KVM_IRQACKDATA_VECTOR_VALID) {
control = &vcpu->svm->vmcb->control;
+#if 0
control->int_vector = ack.vector;
control->int_ctl &= ~V_INTR_PRIO_MASK;
control->int_ctl |= V_IRQ_MASK |
((/*control->int_vector >> 4*/ 0xf) <<
V_INTR_PRIO_SHIFT);
+#endif
+ control->event_inj = ack.vector
+ | SVM_EVTINJ_VALID
+ | SVM_EVTINJ_TYPE_INTR;
++vcpu->stat.irq_accepted;
}
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
kvm-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel