qemu/target-i386
Will Auld f28558d3d3 target-i386: Enabling IA32_TSC_ADJUST for QEMU KVM guest VMs
CPUID.7.0.EBX[1]=1 indicates IA32_TSC_ADJUST MSR 0x3b is supported

Basic design is to emulate the MSR by allowing reads and writes to the
hypervisor vcpu specific locations to store the value of the emulated MSRs.
In this way the IA32_TSC_ADJUST value will be included in all reads to
the TSC MSR whether through rdmsr or rdtsc.

As this is a new MSR that the guest may access and modify its value needs
to be migrated along with the other MRSs. The changes here are specifically
for recognizing when IA32_TSC_ADJUST is enabled in CPUID and code added
for migrating its value.

Signed-off-by: Will Auld <will.auld@intel.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
2012-12-14 18:17:36 -02:00
..
arch_dump.c Fix some more license versions (GPL2+ instead of GPL2) 2012-06-11 22:20:21 +02:00
arch_memory_mapping.c Rename target_phys_addr_t to hwaddr 2012-10-23 08:58:25 -05:00
cc_helper_template.h x86: avoid AREG0 for condition code helpers 2012-08-14 19:01:25 +00:00
cc_helper.c x86: Implement SMEP and SMAP 2012-10-01 08:04:22 -05:00
cpu-qom.h target-i386: Defer MCE init 2012-05-12 14:17:52 +02:00
cpu.c target-i386: Postpone cpuid_level update to realize time 2012-12-07 19:03:04 +01:00
cpu.h target-i386: Enabling IA32_TSC_ADJUST for QEMU KVM guest VMs 2012-12-14 18:17:36 -02:00
excp_helper.c x86: avoid an extern declaration 2012-06-28 20:28:08 +00:00
fpu_helper.c x86: switch to AREG0 free mode 2012-08-14 19:01:26 +00:00
helper.c cpus: Pass CPUState to run_on_cpu() 2012-10-31 04:12:23 +01:00
helper.h target-i386: rename helper flags 2012-10-28 14:54:23 +01:00
hyperv.c hyper-v: introduce Hyper-V support infrastructure. 2012-01-19 08:32:12 -02:00
hyperv.h hyperv: fix build on non-KVM hosts 2012-01-23 20:04:51 +00:00
int_helper.c x86: avoid AREG0 for integer helpers 2012-08-14 19:01:25 +00:00
ioport-user.c build: move obj-TARGET-y variables to nested Makefile.objs 2012-06-07 07:17:36 +02:00
kvm_i386.h kvm: i386: Add services required for PCI device assignment 2012-09-10 15:29:59 +03:00
kvm-stub.c kvm: Move kvm_allows_irq0_override() to target-i386, fix return type 2012-08-09 16:16:55 +03:00
kvm.c target-i386: Enabling IA32_TSC_ADJUST for QEMU KVM guest VMs 2012-12-14 18:17:36 -02:00
machine.c target-i386: Enabling IA32_TSC_ADJUST for QEMU KVM guest VMs 2012-12-14 18:17:36 -02:00
Makefile.objs x86: switch to AREG0 free mode 2012-08-14 19:01:26 +00:00
mem_helper.c x86: switch to AREG0 free mode 2012-08-14 19:01:26 +00:00
misc_helper.c x86: switch to AREG0 free mode 2012-08-14 19:01:26 +00:00
ops_sse_header.h x86: avoid AREG0 for FPU helpers 2012-08-14 19:01:25 +00:00
ops_sse.h x86: avoid AREG0 for FPU helpers 2012-08-14 19:01:25 +00:00
seg_helper.c cpu_dump_state: move DUMP_FPU and DUMP_CCOP flags from x86-only to generic 2012-10-05 15:04:43 +01:00
shift_helper_template.h x86: avoid AREG0 for integer helpers 2012-08-14 19:01:25 +00:00
smm_helper.c cpu_dump_state: move DUMP_FPU and DUMP_CCOP flags from x86-only to generic 2012-10-05 15:04:43 +01:00
svm_helper.c Rename target_phys_addr_t to hwaddr 2012-10-23 08:58:25 -05:00
svm.h Use new macro QEMU_PACKED for packed structures 2011-09-03 10:45:59 +00:00
TODO target-i386: fix {min,max}{pd,ps,sd,ss} SSE2 instructions 2012-01-11 09:55:28 +01:00
translate.c TCG: Use gen_opc_instr_start from context instead of global variable. 2012-12-08 14:24:43 +00:00