qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] pc: Clean up PIC-to-APIC IRQ path


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH] pc: Clean up PIC-to-APIC IRQ path
Date: Mon, 29 Aug 2011 14:25:57 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110516 Lightning/1.0b2 Thunderbird/3.1.10

On 08/27/2011 09:16 AM, Jan Kiszka wrote:
From: Jan Kiszka<address@hidden>

The master PIC is connected to the LINTIN0 of the APICs. As the APIC
currently does not track the state of that line, we have to ask the PIC
to re-inject its IRQ after the CPU picked up an event from the APIC.

Adds the proper state tracking so that we can already re-assert the CPU
IRQ at APIC level if there is a pending PIC IRQ. This allows to remove
all the old workarounds.

The patch also fixes some failures of the kvm unit tests apic and
eventinj by enabling a proper CPU IRQ deassert when the guest masks some
pending IRQs at PIC level.

Signed-off-by: Jan Kiszka<address@hidden>
---

It turned out that this patch from a larger cleanup series has no
dependencies and can be applied directly to master to fix the observed
bug.

  hw/apic.c  |    4 +++-
  hw/i8259.c |   10 ++--------
  hw/pc.c    |    3 ---
  hw/pc.h    |    1 -
  4 files changed, 5 insertions(+), 13 deletions(-)

diff --git a/hw/apic.c b/hw/apic.c
index d8f56c8..22ad635 100644
--- a/hw/apic.c
+++ b/hw/apic.c
@@ -104,6 +104,7 @@ struct APICState {
      QEMUTimer *timer;
      int sipi_vector;
      int wait_for_sipi;
+    int pic_level;
  };

Does this need to be save/restored for migration?

Regards,

Anthony Liguori



reply via email to

[Prev in Thread] Current Thread [Next in Thread]