Displaying 3 results from an estimated 3 matches for "vlapic_has_pending_irq".
2013 Aug 22
9
[PATCH v3 0/4] Nested VMX: APIC-v related bug fixing
From: Yang Zhang <yang.z.zhang@Intel.com>
The following patches fix the issue that fail to boot L2 guest on APIC-v
available machine. The main problem is that with APIC-v, virtual interrupt inject
L1 is totally through APIC-v. But if virtual interrupt is arrived when L2 is running,
L1 will detect interrupt through vmexit with reason external interrupt. If this happens,
we should update
2007 Dec 11
0
[HVM] Fix interrupt routing
..., we do nothing but return at once because
vioapic.redirtbl[2].mask = 1;
Next, in vmx_intr_assist() -> hvm_vcpu_has_pending_irq(), we can''t
inject vPIT interrupt because vlapic_accept_pic_intr() return false
(because vlapic.lvt[LINT0].mask=1, and vlapic_hw_disabled() returns
false), so vlapic_has_pending_irq() returns -1.
Eventually, the pending PIT interrupts prevent the injection of lapic
timer interrupts!
The patch fixes the issue by rectifying is_isa_irq_masked().
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
_______________________________________________
Xen-devel mailing list
Xen-d...
2012 Sep 14
0
[ PATCH v3 2/3] xen: enable Virtual-interrupt delivery
...,6 +1011,14 @@ void vlapic_adjust_i8259_target(struct d
pt_adjust_global_vcpu_target(v);
}
+int vlapic_virtual_intr_delivery_enabled(void)
+{
+ if ( hvm_funcs.virtual_intr_delivery_enabled )
+ return hvm_funcs.virtual_intr_delivery_enabled();
+ else
+ return 0;
+}
+
int vlapic_has_pending_irq(struct vcpu *v)
{
struct vlapic *vlapic = vcpu_vlapic(v);
@@ -1012,6 +1031,9 @@ int vlapic_has_pending_irq(struct vcpu *
if ( irr == -1 )
return -1;
+ if ( vlapic_virtual_intr_delivery_enabled() )
+ return irr;
+
isr = vlapic_find_highest_isr(vlapic);
isr =...