Gleb Natapov wrote on 2012-12-10: > On Mon, Dec 10, 2012 at 01:34:02AM +0000, Zhang, Yang Z wrote: >> Gleb Natapov wrote on 2012-12-09: >>> On Sat, Dec 08, 2012 at 08:04:30PM +0800, Yang Zhang wrote: >>>> diff --git a/virt/kvm/ioapic.c b/virt/kvm/ioapic.c >>>> index cfb7e4d..081225a 100644 >>>> --- a/virt/kvm/ioapic.c >>>> +++ b/virt/kvm/ioapic.c >>>> @@ -115,6 +115,40 @@ static void update_handled_vectors(struct > kvm_ioapic >>> *ioapic) >>>> smp_wmb(); >>>> } >>>> +void _ioapic_update_eoi_exitmap(struct kvm_ioapic *ioapic, int pin) >>>> +{ >>> Bette make is ioapic_update_eoi_exitmap_one() or something. Underscore >>> is undescriptive. >>> >>>> + union kvm_ioapic_redirect_entry *e; >>>> + >>>> + e = &ioapic->redirtbl[pin]; >>>> + >>>> + /* PIT is a special case: which is edge trig but have EOI hook. >>>> + * Always set the eoi exit bitmap for PIT interrupt*/ >>> No hacks please. Check that ack notifier is register for gsi. >> Do you mean do this in kvm_register_irq_ack_notifier()? The problem is that > we cannot get the vector when calling this function. Because this function is > called during device initializing, and guest is not starting at that time. >> > Call ioapic_update_eoi_exitmap() in kvm_register_irq_ack_notifier(), > check that gsi (pin) has notifier registered in ioapic_update_eoi_exitmap(). > Ok. Best regards, Yang -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html