The current irq and exception injection infrastructure is quite complex and
has been the source of a number of bugs in the past.  This patchset simplifies
irq and exception injection:

- Much more work is carried out in common code rather than vmx/svm specific
  code.  Information is kept in C variables rather than hardware registers

- Exception and interrupts are separated into two independent queues.  This
  will allow later optimization on AMD where the hardware supports two queues,
  and also simplifies the Intel case as now we don't need to check the hardware
  whether an exception is pending when injecting and interrupt.

- Interrupts are now only acked after they have been successfully injected,
  rather than when the injection is attempted.  This significantly simplifies
  the case where we fail to inject an interrupt due to a shadow page fault.

The patchset is also necessary for integrating the tpr optimization branch
and for injecting interrupts in big real mode.

 drivers/kvm/i8259.c       |   44 ++++++----
 drivers/kvm/irq.c         |   40 ++-------
 drivers/kvm/irq.h         |   17 +++-
 drivers/kvm/kvm_main.c    |    4 +-
 drivers/kvm/lapic.c       |   33 +++++--
 drivers/kvm/mmu.c         |    2 +-
 drivers/kvm/svm.c         |  175 ++++++++------------------------------
 drivers/kvm/vmx.c         |  207 ++++++++-------------------------------------
 drivers/kvm/x86.c         |  164 ++++++++++++++++++++++++++----------
 drivers/kvm/x86.h         |   35 ++++++--
 drivers/kvm/x86_emulate.c |    4 +-
 11 files changed, 291 insertions(+), 434 deletions(-)

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to