From: Avi K. <av...@qu...> - 2008-01-13 13:48:01
|
Avi Kivity wrote: > Guido Guenther wrote: >> On Tue, Jan 08, 2008 at 10:50:00AM +0200, Avi Kivity wrote: >> >>> Yes, you can press the VM's power button (system_powerdown in the >>> monitor) and it will invoke the OS shutdown sequence. >>> >>> Only worked on Linux in my testing though. >>> >> It works for me _when_ I pass --no-kvm-irqchip. So it seems Windows >> ignores the MADT entries or something. >> > > -no-kvm-irqchip implies ignoring the polarity, since qemu doesn't > implement ioapic polarity. > > I think we need to go back to active low pci irqs, and to have > no-ioapic working we need to insert an inverter between the pci irq > links and the pic. I base this on the following: > > - piix doesn't contain an ioapic, so the actual lines must be active low > - the piix pic elcr is documented as active-high for level-triggered irqs > Okay, this is likely right as I was able to shutdown both Windows and Linux with the following: - backout the madt interrupt source override changes - declare all interrupts as active low - negate pci irq interrupts in qemu just before forwarding to kvm (so they become active low) - negate pci irq interrupts in the kernel just before forwarding to the pic (so that they become active high, but leaving the ioapic interrupts active low) There's quite a bit of work before that can be committed, though. I want to generalize interrupt routing in the kernel, and we need tons of backward compatibility in the dsdt so that older hosts can still function. -- error compiling committee.c: too many arguments to function |