linux/arch/x86/kvm
Avi Kivity c4f035c60d KVM: x86 emulator: add framework for instruction intercepts
When running in guest mode, certain instructions can be intercepted by
hardware.  This also holds for nested guests running on emulated
virtualization hardware, in particular instructions emulated by kvm
itself.

This patch adds a framework for intercepting instructions.  If an
instruction is marked for interception, and if we're running in guest
mode, a callback is called to check whether an intercept is needed or
not.  The callback is called at three points in time: immediately after
beginning execution, after checking privilge exceptions, and after
checking memory exception.  This suits the different interception points
defined for different instructions and for the various virtualization
instruction sets.

In addition, a new X86EMUL_INTERCEPT is defined, which any callback or
memory access may define, allowing the more complicated intercepts to be
implemented in existing callbacks.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
2011-05-11 07:57:00 -04:00
..
emulate.c KVM: x86 emulator: add framework for instruction intercepts 2011-05-11 07:57:00 -04:00
i8254.c KVM: fix typo in copyright notice 2010-10-24 10:53:14 +02:00
i8254.h KVM: x86: Introduce a workqueue to deliver PIT timer interrupts 2010-08-01 10:46:49 +03:00
i8259.c KVM: remove isr_ack logic from PIC 2011-03-17 13:08:30 -03:00
irq.c KVM: fix typo in copyright notice 2010-10-24 10:53:14 +02:00
irq.h KVM: Convert PIC lock from raw spinlock to ordinary spinlock 2010-10-24 10:52:56 +02:00
Kconfig KVM: Halt vcpu if page it tries to access is swapped out 2011-01-12 11:21:39 +02:00
kvm_cache_regs.h KVM: Fetch guest cr3 from hardware on demand 2011-01-12 11:31:16 +02:00
kvm_timer.h KVM: arch/x86/kvm/kvm_timer.h checkpatch cleanup 2010-05-17 12:14:42 +03:00
lapic.c KVM: x86: Remove useless regs_page pointer from kvm_lapic 2011-03-17 13:08:33 -03:00
lapic.h KVM: x86: Remove useless regs_page pointer from kvm_lapic 2011-03-17 13:08:33 -03:00
Makefile KVM: x86: Makefile clean up 2011-01-12 11:29:08 +02:00
mmu_audit.c KVM: MMU: audit: allow audit more guests at the same time 2011-01-12 11:31:17 +02:00
mmu.c KVM: MMU: cleanup pte write path 2011-03-17 13:08:35 -03:00
mmu.h KVM: MMU: Don't track nested fault info in error-code 2010-10-24 10:52:55 +02:00
mmutrace.h KVM: MMU: support disable/enable mmu audit dynamicly 2010-10-24 10:51:56 +02:00
paging_tmpl.h Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-03-18 10:45:21 -07:00
svm.c KVM: SVM: Remove unused svm_features 2011-05-11 07:56:57 -04:00
timer.c x86: Fix common misspellings 2011-03-18 10:39:30 +01:00
trace.h tracing: Fix event alignment: kvm:kvm_hv_hypercall 2011-03-10 10:34:24 -05:00
tss.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
vmx.c KVM: VMX: simplify NMI mask management 2011-05-11 07:56:57 -04:00
x86.c KVM: x86 emulator: add framework for instruction intercepts 2011-05-11 07:57:00 -04:00
x86.h KVM: SVM: Do not report xsave in supported cpuid 2010-12-08 17:28:37 +02:00