qemu/target-i386
Jan Kiszka ab443475c9 kvm: x86: Inject pending MCE events on state writeback
The current way of injecting MCE events without updating of and
synchronizing with the CPUState is broken and causes spurious
corruptions of the MCE-related parts of the CPUState.

As a first step towards a fix, enhance the state writeback code with
support for injecting events that are pending in the CPUState. A pending
exception will then be signaled via cpu_interrupt(CPU_INTERRUPT_MCE).
And, just like for TCG, we need to leave the halt state when
CPU_INTERRUPT_MCE is pending (left broken for the to-be-removed old KVM
code).

This will also allow to unify TCG and KVM injection code.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
CC: Huang Ying <ying.huang@intel.com>
CC: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
CC: Jin Dongming <jin.dongming@np.css.fujitsu.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
2011-03-15 01:19:05 -03:00
..
cpu.h x86: Optionally avoid injecting AO MCEs while others are pending 2011-03-15 01:19:05 -03:00
cpuid.c kvm: Improve reporting of fatal errors 2011-01-23 02:27:20 -02:00
exec.h x86: Account for MCE in cpu_has_work 2011-03-15 01:19:05 -03:00
helper_template.h Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
helper.c x86: Optionally avoid injecting AO MCEs while others are pending 2011-03-15 01:19:05 -03:00
helper.h target-i386: implement lzcnt emulation 2009-10-23 17:10:36 +02:00
kvm_x86.h Add "broadcast" option for mce command 2011-01-21 14:05:22 -02:00
kvm.c kvm: x86: Inject pending MCE events on state writeback 2011-03-15 01:19:05 -03:00
machine.c Add support for async page fault to qemu 2010-11-16 08:40:07 -06:00
op_helper.c i386: avoid a write only variable 2010-10-13 18:43:19 +00:00
ops_sse_header.h tcg: Optionally sign-extend 32-bit arguments for 64-bit hosts. 2010-06-16 11:29:11 +02:00
ops_sse.h target-i386: add SSE4a instruction support 2009-10-04 14:09:41 +02:00
svm.h reworked SVM interrupt handling logic - fixed vmrun EIP saved value - reworked cr8 handling - added CPUState.hflags2 2008-06-04 17:02:19 +00:00
TODO Unbreak large mem support by removing kqemu 2009-08-24 08:02:55 -05:00
translate.c target-i386: Use deposit operation. 2011-01-20 12:16:12 +01:00