diff options
author | Alexander Graf <agraf@suse.de> | 2010-03-24 16:48:37 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2010-05-17 05:17:21 -0400 |
commit | 05b0ab1c0bb526ac1056bab356ee92cfd6daa6fd (patch) | |
tree | c4da81666edb0ef665a38c9931b115dfa3a14cbe /arch/powerpc/kvm | |
parent | 3ed9c6d2b5aa0ac365c52a2a3a370ac499f21e45 (diff) |
KVM: PPC: Disable MSR_FEx for Cell hosts
Cell can't handle MSR_FE0 and MSR_FE1 too well. It gets dog slow.
So let's just override the guest whenever we see one of the two and mask them
out. See commit ddf5f75a16b3e7460ffee881795aa168dffcd0cf for reference.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/powerpc/kvm')
-rw-r--r-- | arch/powerpc/kvm/book3s.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c index ed5758496372..41c23b636f53 100644 --- a/arch/powerpc/kvm/book3s.c +++ b/arch/powerpc/kvm/book3s.c | |||
@@ -357,6 +357,10 @@ void kvmppc_set_pvr(struct kvm_vcpu *vcpu, u32 pvr) | |||
357 | !strcmp(cur_cpu_spec->platform, "ppc970")) | 357 | !strcmp(cur_cpu_spec->platform, "ppc970")) |
358 | vcpu->arch.hflags |= BOOK3S_HFLAG_DCBZ32; | 358 | vcpu->arch.hflags |= BOOK3S_HFLAG_DCBZ32; |
359 | 359 | ||
360 | /* Cell performs badly if MSR_FEx are set. So let's hope nobody | ||
361 | really needs them in a VM on Cell and force disable them. */ | ||
362 | if (!strcmp(cur_cpu_spec->platform, "ppc-cell-be")) | ||
363 | to_book3s(vcpu)->msr_mask &= ~(MSR_FE0 | MSR_FE1); | ||
360 | } | 364 | } |
361 | 365 | ||
362 | /* Book3s_32 CPUs always have 32 bytes cache line size, which Linux assumes. To | 366 | /* Book3s_32 CPUs always have 32 bytes cache line size, which Linux assumes. To |