Re: [Xen-devel] [PATCH] x86/xen: Calculate __max_logical_packages on PV domains
Boris Ostrovsky: > On 02/07/2018 06:49 PM, Prarit Bhargava wrote: >> The kernel panics on PV domains because native_smp_cpus_done() is >> only called for HVM domains. >> >> Calculate __max_logical_packages for PV domains. >> >> Fixes: b4c0a7326f5d ("x86/smpboot: Fix __max_logical_packages estimate") >> Signed-off-by: Prarit Bhargava>> Tested-and-reported-by: Simon Gaiser >> Cc: Thomas Gleixner >> Cc: Ingo Molnar >> Cc: "H. Peter Anvin" >> Cc: x...@kernel.org >> Cc: Boris Ostrovsky >> Cc: Juergen Gross >> Cc: Dou Liyang >> Cc: Prarit Bhargava >> Cc: Kate Stewart >> Cc: Greg Kroah-Hartman >> Cc: Andy Lutomirski >> Cc: Andi Kleen >> Cc: Vitaly Kuznetsov >> Cc: xen-devel@lists.xenproject.org > > > Reviewed-by: Boris Ostrovsky The fixed bug is in 4.15 so it should get into stable. It's 63e708f826bb21470155d37b103a75d8a9e25b18 upstream. signature.asc Description: OpenPGP digital signature ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH] x86/xen: Calculate __max_logical_packages on PV domains
* Juergen Grosswrote: > On 08/02/18 01:59, Boris Ostrovsky wrote: > > > > > > On 02/07/2018 06:49 PM, Prarit Bhargava wrote: > >> The kernel panics on PV domains because native_smp_cpus_done() is > >> only called for HVM domains. > >> > >> Calculate __max_logical_packages for PV domains. > >> > >> Fixes: b4c0a7326f5d ("x86/smpboot: Fix __max_logical_packages estimate") > >> Signed-off-by: Prarit Bhargava > >> Tested-and-reported-by: Simon Gaiser > >> Cc: Thomas Gleixner > >> Cc: Ingo Molnar > >> Cc: "H. Peter Anvin" > >> Cc: x...@kernel.org > >> Cc: Boris Ostrovsky > >> Cc: Juergen Gross > >> Cc: Dou Liyang > >> Cc: Prarit Bhargava > >> Cc: Kate Stewart > >> Cc: Greg Kroah-Hartman > >> Cc: Andy Lutomirski > >> Cc: Andi Kleen > >> Cc: Vitaly Kuznetsov > >> Cc: xen-devel@lists.xenproject.org > > > > > > Reviewed-by: Boris Ostrovsky > > Thomas, Ingo, are you taking this via the tip tree or should I take > it via the xen tree? Since it's supposed to only affect Xen feel free to pick it up: Acked-by: Ingo Molnar Thanks, Ingo ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH] x86/xen: Calculate __max_logical_packages on PV domains
On 08/02/18 00:49, Prarit Bhargava wrote: > The kernel panics on PV domains because native_smp_cpus_done() is > only called for HVM domains. > > Calculate __max_logical_packages for PV domains. > > Fixes: b4c0a7326f5d ("x86/smpboot: Fix __max_logical_packages estimate") > Signed-off-by: Prarit Bhargava> Tested-and-reported-by: Simon Gaiser > Cc: Thomas Gleixner > Cc: Ingo Molnar > Cc: "H. Peter Anvin" > Cc: x...@kernel.org > Cc: Boris Ostrovsky > Cc: Juergen Gross > Cc: Dou Liyang > Cc: Prarit Bhargava > Cc: Kate Stewart > Cc: Greg Kroah-Hartman > Cc: Andy Lutomirski > Cc: Andi Kleen > Cc: Vitaly Kuznetsov > Cc: xen-devel@lists.xenproject.org Committed to xen.tip for-linus-4.16 Juergen ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH] x86/xen: Calculate __max_logical_packages on PV domains
On 08/02/18 01:59, Boris Ostrovsky wrote: > > > On 02/07/2018 06:49 PM, Prarit Bhargava wrote: >> The kernel panics on PV domains because native_smp_cpus_done() is >> only called for HVM domains. >> >> Calculate __max_logical_packages for PV domains. >> >> Fixes: b4c0a7326f5d ("x86/smpboot: Fix __max_logical_packages estimate") >> Signed-off-by: Prarit Bhargava>> Tested-and-reported-by: Simon Gaiser >> Cc: Thomas Gleixner >> Cc: Ingo Molnar >> Cc: "H. Peter Anvin" >> Cc: x...@kernel.org >> Cc: Boris Ostrovsky >> Cc: Juergen Gross >> Cc: Dou Liyang >> Cc: Prarit Bhargava >> Cc: Kate Stewart >> Cc: Greg Kroah-Hartman >> Cc: Andy Lutomirski >> Cc: Andi Kleen >> Cc: Vitaly Kuznetsov >> Cc: xen-devel@lists.xenproject.org > > > Reviewed-by: Boris Ostrovsky Thomas, Ingo, are you taking this via the tip tree or should I take it via the xen tree? Juergen ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH] x86/xen: Calculate __max_logical_packages on PV domains
On 02/07/2018 06:49 PM, Prarit Bhargava wrote: The kernel panics on PV domains because native_smp_cpus_done() is only called for HVM domains. Calculate __max_logical_packages for PV domains. Fixes: b4c0a7326f5d ("x86/smpboot: Fix __max_logical_packages estimate") Signed-off-by: Prarit BhargavaTested-and-reported-by: Simon Gaiser Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: x...@kernel.org Cc: Boris Ostrovsky Cc: Juergen Gross Cc: Dou Liyang Cc: Prarit Bhargava Cc: Kate Stewart Cc: Greg Kroah-Hartman Cc: Andy Lutomirski Cc: Andi Kleen Cc: Vitaly Kuznetsov Cc: xen-devel@lists.xenproject.org Reviewed-by: Boris Ostrovsky (+ Simon) --- arch/x86/include/asm/smp.h | 1 + arch/x86/kernel/smpboot.c | 10 -- arch/x86/xen/smp.c | 2 ++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h index 461f53d27708..a4189762b266 100644 --- a/arch/x86/include/asm/smp.h +++ b/arch/x86/include/asm/smp.h @@ -129,6 +129,7 @@ static inline void arch_send_call_function_ipi_mask(const struct cpumask *mask) void cpu_disable_common(void); void native_smp_prepare_boot_cpu(void); void native_smp_prepare_cpus(unsigned int max_cpus); +void calculate_max_logical_packages(void); void native_smp_cpus_done(unsigned int max_cpus); void common_cpu_up(unsigned int cpunum, struct task_struct *tidle); int native_cpu_up(unsigned int cpunum, struct task_struct *tidle); diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 6f27facbaa9b..767573b7f2db 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c @@ -1281,11 +1281,10 @@ void __init native_smp_prepare_boot_cpu(void) cpu_set_state_online(me); } -void __init native_smp_cpus_done(unsigned int max_cpus) +void __init calculate_max_logical_packages(void) { int ncpus; - pr_debug("Boot done\n"); /* * Today neither Intel nor AMD support heterogenous systems so * extrapolate the boot cpu's data to all packages. @@ -1293,6 +1292,13 @@ void __init native_smp_cpus_done(unsigned int max_cpus) ncpus = cpu_data(0).booted_cores * topology_max_smt_threads(); __max_logical_packages = DIV_ROUND_UP(nr_cpu_ids, ncpus); pr_info("Max logical packages: %u\n", __max_logical_packages); +} + +void __init native_smp_cpus_done(unsigned int max_cpus) +{ + pr_debug("Boot done\n"); + + calculate_max_logical_packages(); if (x86_has_numa_in_package) set_sched_topology(x86_numa_in_package_topology); diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c index 77c959cf81e7..7a43b2ae19f1 100644 --- a/arch/x86/xen/smp.c +++ b/arch/x86/xen/smp.c @@ -122,6 +122,8 @@ void __init xen_smp_cpus_done(unsigned int max_cpus) if (xen_hvm_domain()) native_smp_cpus_done(max_cpus); + else + calculate_max_logical_packages(); if (xen_have_vcpu_info_placement) return; ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel