Re: [PATCH v5 3/6] KVM: x86: ioapic: Preserve irr_delivered for duplicate edge interrupts
"Huang, Kai" <[email protected]>
| Newsgroups | dev.linux.lists.sashiko-reviews,org.kernel.vger.kvm |
|---|---|
| Message-ID | <[email protected]> |
On Thu, 2026-08-13 at 15:52 +0800, Hao Zhang wrote: > > Could this sequence cause latched edge-triggered interrupts to be silently > > ignored and lost if a guest temporarily masks IOAPIC pins during interrupt > > handling? > > > > Sashiko seems to assume that an edge-triggered interrupt which is signaled > while the IOAPIC RTE is masked must remain latched and then be delivered when > the RTE is unmasked. > > However, the Intel 82093AA I/O Advanced Programmable Interrupt Controller datasheet > (https://pdos.csail.mit.edu/6.828/2018/readings/ia32/ioapic.pdf) states that > edge-sensitive interrupts signaled on a masked interrupt pin are ignored, > i.e. they are not delivered or held pending. > > KVM's userspace ABI (https://www.kernel.org/doc/html/v6.12/virt/kvm/api.html#kvm-irq-line) > also represents an edge interrupt as a pulse, by asserting the line and then deasserting > it. If that complete pulse occurs while the RTE is masked, there is no pending edge that > needs to be delivered on unmask. +1.