Gregory Haskins wrote: > On Fri, 2007-06-22 at 10:09 +0800, Dong, Eddie wrote: > >> Avi Kivity wrote: >> >>> Eddie, is that what you were driving at in your simplification >>> attempt? >>> >>> >> Yes, some minor thing: >> KVM_ISA_INTERRUPT: Per VM I/F, and need an irq line and irq level. >> KVM_IOAPIC_INTERRUPT: Per VM I/F, may also need irq level for level >> triggered irq. >> KVM_APIC_MESSAGE: Per VCPU I/F >> > > Note that in my implementation the APIC_MESSAGE is also VM I/F. In > fact, IMHO the only API that should be VCPU I/F is the original API, > KVM_INTERRUPT. The reason is, the PIC related interrupts are targeted > at the vm-global ISA resources, and the APIC_MESSAGE is targeted at the > vm-global apic *bus*, not a particular lapic (yet). Its the bus that > then determines the actual routing to its final destination. I think > this design distinction is important. > >
Good point. I agree. > >> Per step by step approach way, KVM_EXTINT (assume for LINT0/LINT1) can >> be deferred to future implementation. >> > > Unless I misunderstood Avi, I think he was suggesting that use use > KVM_EXTINT/ISA_INTERRUPT as a way to distinguish between the dual modes > of ISA_INTERRUPT as I have today (e.g. > ISA_INTERRUPT(level-1)/ISA_INTERRUPT(level-2)). This doesn't really > have anything to do with LINT0/1 (directly, anyway). Hope this helps to > clarify. > Well, we don't need to think in terms of modes. Each ioctl controls interrupts at a different point in the architecture. KVM_INTERRUPT is at the interface between the processor core and the lapic/system bus. KVM_APIC_MESSAGE is at the apic bus. KVM_EXTINT is at the interface between the lapic and the system bus. If the guest disabled the local apic, it's equivalent to the KVM_INTERRUPT (injecting a vector directly); otherwise it is handled by the lapic (LINT0/1 handling). KVM_ISA_INTERRUPT (maybe KVM_IRQ_LINE, to signify it doesn't carry a vector) is at the boundary between the interrupt controller chips and the rest of the system. -- Do not meddle in the internals of kernels, for they are subtle and quick to panic. ------------------------------------------------------------------------- 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 kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel