diff options
author | Avi Kivity <avi@redhat.com> | 2010-09-07 16:21:22 +0300 |
---|---|---|
committer | Marcelo Tosatti <mtosatti@redhat.com> | 2010-09-07 21:55:47 -0300 |
commit | c6866cd556fffee5cacee23707893b4a58388c4d (patch) | |
tree | 076ded17970fe153ce9d508b692aad8df486adaa | |
parent | a61052167957ac41d3f753585258178287144a91 (diff) |
kvm: reset MSR_IA32_CR_PAT correctly
The power-on value of MSR_IA32_CR_PAT is not 0 - that disables cacheing and
makes everything dog slow.
Fix to reset MSR_IA32_CR_PAT to the correct value.
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
-rw-r--r-- | qemu-kvm-x86.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/qemu-kvm-x86.c b/qemu-kvm-x86.c index 4c32771e1..e02e89636 100644 --- a/qemu-kvm-x86.c +++ b/qemu-kvm-x86.c @@ -1289,12 +1289,21 @@ static int kvm_reset_msrs(CPUState *env) } msr_data; int n; struct kvm_msr_entry *msrs = msr_data.entries; + uint32_t index; + uint64_t data; if (!kvm_msr_list) return -1; for (n = 0; n < kvm_msr_list->nmsrs; n++) { - kvm_msr_entry_set(&msrs[n], kvm_msr_list->indices[n], 0); + index = kvm_msr_list->indices[n]; + switch (index) { + case MSR_PAT: + data = 0x0007040600070406ULL; + default: + data = 0; + } + kvm_msr_entry_set(&msrs[n], index, data); } msr_data.info.nmsrs = n; |