On Fri, 02 Sep 2016 15:04:47 +0530 Nikunj A Dadhania <nik...@linux.vnet.ibm.com> wrote:
> Greg Kurz <gr...@kaod.org> writes: > > > On Fri, 2 Sep 2016 12:02:54 +0530 > > Nikunj A Dadhania <nik...@linux.vnet.ibm.com> wrote: > > > >> Signed-off-by: Nikunj A Dadhania <nik...@linux.vnet.ibm.com> > >> --- > > > > Shouldn't this patch be the last one, when all other issues have been > > addressed ? > > > >> target-ppc/kvm.c | 2 +- > >> target-ppc/kvm_ppc.h | 2 +- > >> 2 files changed, 2 insertions(+), 2 deletions(-) > >> > >> diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c > >> index dcb68b9..20eb450 100644 > >> --- a/target-ppc/kvm.c > >> +++ b/target-ppc/kvm.c > >> @@ -2090,7 +2090,7 @@ void kvmppc_set_mpic_proxy(PowerPCCPU *cpu, int > >> mpic_proxy) > >> > >> int kvmppc_smt_threads(void) > >> { > >> - return cap_ppc_smt ? cap_ppc_smt : 1; > >> + return cap_ppc_smt ? cap_ppc_smt : 8; > > > > If KVM is there but does not support SMT processor modes, it looks > > wrong to return anything but 1. This check needs kvm_enabled(). > > This also gets called when emulating PPC on PPC. > Yes and the current value of 1 is the default for non HV KVM and TCG. If you want to change the default for MTTCG, then you need separate paths. > > Also, why 8 ? This depends on the CPU model. > > Not sure if I need to emulate according to the host cpu model. I had > selected 8, as that was the highest number of threads possible for POWER. > If running in full emulation and cpu type is POWER7, this shouldn't be higher than 4. In the end, something like: int kvmppc_smt_threads(void) { if (kvm_enabled()) { return cap_ppc_smt ? cap_ppc_smt : 1; } else { return 8_or_4_or_2_or_1_depending_on_the_cpu_model; } } Cheers. -- Greg > > Also, since real HW allows to choose the SMT mode, maybe this should > > be configurable from the command line as well. > > > >> } > >> > >> #ifdef TARGET_PPC64 > >> diff --git a/target-ppc/kvm_ppc.h b/target-ppc/kvm_ppc.h > >> index 5461d10..053db0a 100644 > >> --- a/target-ppc/kvm_ppc.h > >> +++ b/target-ppc/kvm_ppc.h > >> @@ -128,7 +128,7 @@ static inline void kvmppc_set_mpic_proxy(PowerPCCPU > >> *cpu, int mpic_proxy) > >> > >> static inline int kvmppc_smt_threads(void) > >> { > >> - return 1; > >> + return 8; > > > > Same remark. > > > >> } > >> > >> static inline int kvmppc_or_tsr_bits(PowerPCCPU *cpu, uint32_t tsr_bits) > > Regards > Nikunj >