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 ddf5f75a16
for reference.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
committed by
Avi Kivity
parent
3ed9c6d2b5
commit
05b0ab1c0b
@@ -357,6 +357,10 @@ void kvmppc_set_pvr(struct kvm_vcpu *vcpu, u32 pvr)
|
|||||||
!strcmp(cur_cpu_spec->platform, "ppc970"))
|
!strcmp(cur_cpu_spec->platform, "ppc970"))
|
||||||
vcpu->arch.hflags |= BOOK3S_HFLAG_DCBZ32;
|
vcpu->arch.hflags |= BOOK3S_HFLAG_DCBZ32;
|
||||||
|
|
||||||
|
/* Cell performs badly if MSR_FEx are set. So let's hope nobody
|
||||||
|
really needs them in a VM on Cell and force disable them. */
|
||||||
|
if (!strcmp(cur_cpu_spec->platform, "ppc-cell-be"))
|
||||||
|
to_book3s(vcpu)->msr_mask &= ~(MSR_FE0 | MSR_FE1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Book3s_32 CPUs always have 32 bytes cache line size, which Linux assumes. To
|
/* Book3s_32 CPUs always have 32 bytes cache line size, which Linux assumes. To
|
||||||
|
Reference in New Issue
Block a user