Message ID | 20160430104800.0a7c1d11@kryten (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Sat, Apr 30, 2016 at 6:18 AM, Anton Blanchard <anton@samba.org> wrote: > We don't support transactional memory in PR KVM, so don't tell > the OS that we do. > > Signed-off-by: Anton Blanchard <anton@samba.org> > --- > > v2: Fix build with CONFIG_KVM disabled, noticed by Alex. > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index b69995e..dc3e3c9 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -696,6 +696,14 @@ static void spapr_populate_cpu_dt(CPUState *cs, void *fdt, int offset, > } else /* env->mmu_model == POWERPC_MMU_2_07 */ { > pa_features = pa_features_207; > pa_size = sizeof(pa_features_207); > + > +#ifdef CONFIG_KVM > + /* Don't enable TM in PR KVM mode */ > + if (kvm_enabled() && > + kvm_vm_check_extension(cs->kvm_state, KVM_CAP_PPC_GET_PVINFO)) { > + pa_features[24] &= ~0x80; > + } > +#endif > } > if (env->ci_large_pages) { > pa_features[3] |= 0x20; > This email was put in the spam folder by gmail. The message said "It has a from address in samba.org but has failed samba.org's required tests for authentication". Just bringing this to peoples attention. I thought a patch might go unnoticed else.
On Sat, Apr 30, 2016 at 10:48:00AM +1000, Anton Blanchard wrote: > We don't support transactional memory in PR KVM, so don't tell > the OS that we do. > > Signed-off-by: Anton Blanchard <anton@samba.org> Relying on CAP_PPC_GET_PVINFO is a hack we need in some cases, but it's not something to be encouraged. I'd prefer to see this examining a new capability specifically advertising TM support in KVM, with a fallback to PVINFO if necessary. Come to that, we probably shouldn't be advertising TM support in TCG, either, since IIRC our "support" for the TM instructions there is basically worse than useless. > --- > > v2: Fix build with CONFIG_KVM disabled, noticed by Alex. > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index b69995e..dc3e3c9 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -696,6 +696,14 @@ static void spapr_populate_cpu_dt(CPUState *cs, void *fdt, int offset, > } else /* env->mmu_model == POWERPC_MMU_2_07 */ { > pa_features = pa_features_207; > pa_size = sizeof(pa_features_207); > + > +#ifdef CONFIG_KVM > + /* Don't enable TM in PR KVM mode */ > + if (kvm_enabled() && > + kvm_vm_check_extension(cs->kvm_state, KVM_CAP_PPC_GET_PVINFO)) { > + pa_features[24] &= ~0x80; > + } > +#endif > } > if (env->ci_large_pages) { > pa_features[3] |= 0x20; >
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index b69995e..dc3e3c9 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -696,6 +696,14 @@ static void spapr_populate_cpu_dt(CPUState *cs, void *fdt, int offset, } else /* env->mmu_model == POWERPC_MMU_2_07 */ { pa_features = pa_features_207; pa_size = sizeof(pa_features_207); + +#ifdef CONFIG_KVM + /* Don't enable TM in PR KVM mode */ + if (kvm_enabled() && + kvm_vm_check_extension(cs->kvm_state, KVM_CAP_PPC_GET_PVINFO)) { + pa_features[24] &= ~0x80; + } +#endif } if (env->ci_large_pages) { pa_features[3] |= 0x20;
We don't support transactional memory in PR KVM, so don't tell the OS that we do. Signed-off-by: Anton Blanchard <anton@samba.org> --- v2: Fix build with CONFIG_KVM disabled, noticed by Alex.