[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Legacy PCI interrupt {de}assertion count
Hello, I have a question related to how Xen accounts the legacy PCI interrupt assertions when binding interrupts to HVM guests. It's probably just me not properly understand this code (or missing bits of it). As I understand it, for level triggered legacy PCI interrupts Xen sets up a timer in order to perform the EOI if the guest takes too long in deasserting the line. This is done in pt_irq_time_out. What I don't understand is why this function also does a deassertion of the guest view of the PCI interrupt, ie: why it calls hvm_pci_intx_deassert. This AFAICT will clear the pending assert in the guest, and thus the guest will end up loosing one interrupt. IMHO it should be: diff --git a/xen/drivers/passthrough/io.c b/xen/drivers/passthrough/io.c index 080183ea31..e0b19ee8c9 100644 --- a/xen/drivers/passthrough/io.c +++ b/xen/drivers/passthrough/io.c @@ -182,7 +182,6 @@ static void pt_irq_time_out(void *data) pirq_dpci(pirq)->flags |= HVM_IRQ_DPCI_EOI_LATCH; } - hvm_pci_intx_deassert(irq_map->dom, digl->device, digl->intx); } pt_pirq_iterate(irq_map->dom, pt_irq_guest_eoi, NULL); Again, it might well just be that I'm missing something obvious, so I would appreciate some clarification here. Thanks, Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |