aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/hvm/emulate.h
Commit message (Collapse)AuthorAgeFilesLines
* Update my email address to long-term stable address.Keir Fraser2011-01-071-1/+1
| | | | Signed-off-by: Keir Fraser <keir@xen.org>
* x86_32: Fix build by fixing prototype of hvmemul_do_pio().Keir Fraser2010-09-171-1/+1
| | | | Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* x86 hvm: Clean up PIO fast path emulation.Keir Fraser2010-09-151-2/+2
| | | | Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* x86/hvm: accelerate I/O intercept handlingKeir Fraser2010-03-311-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | currently we go through the emulator every time a HVM guest does an I/O port access (in/out). This is unnecessary most of the times, as both VMX and SVM provide all the necessary information already in the VMCS/VMCB. String instructions are not covered by this shortcut, but they are quite rare and we would need to access the guest memory anyway. This patch decodes the information from VMCB/VMCS and calls a simple handle_mmio wrapper. In handle_mmio() itself the emulation part will simply be skipped, this approach avoids code duplication. Since the vendor specific part is quite trivial, I implemented both the VMX and SVM part, please check the VMX part for sanity. I boot-tested both versions and ran some simple benchmarks. A micro benchmark (hammering an I/O port in a tight loop) shows a significant performance improvement (down to 66% of the time needed to handle the intercept on an AMD K8, measured in the guest with TSC). Even with reading a 1GB file from an emulated IDE harddisk (Dom0 cached) I could get a 4-5% improvement. Some guest code (e.g. the TCP stack in some Windows version) exercises the PM-Timer I/O port (0x1F48) very often (multiple 10,000 times per second), these workloads also benefit with up to 5% improvement from this patch. Signed-off-by: Andre Przywara <andre.przywara@amd.com>
* hvm: More emulation changes: push some of the realmode or HVM-emulateKeir Fraser2008-02-221-10/+4
| | | | | specific stuff into core x86_emulate(). Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* x86 hvm: Replace old MMIO emulator with x86_emulate()-based harness.Keir Fraser2008-02-201-0/+55
Re-factor VMX real-mode emulation to use the same harness. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>