Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751606AbcDOLhJ (ORCPT ); Fri, 15 Apr 2016 07:37:09 -0400 Received: from foss.arm.com ([217.140.101.70]:48873 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750765AbcDOLhI (ORCPT ); Fri, 15 Apr 2016 07:37:08 -0400 Date: Fri, 15 Apr 2016 12:37:06 +0100 From: Will Deacon To: Jan Glauber Cc: Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] arm64: Reduce verbosity on SMP CPU stop Message-ID: <20160415113706.GE22906@arm.com> References: <1460715876-10780-1-git-send-email-jglauber@cavium.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1460715876-10780-1-git-send-email-jglauber@cavium.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1730 Lines: 50 On Fri, Apr 15, 2016 at 12:24:36PM +0200, Jan Glauber wrote: > When CPUs are stopped during an abnormal operation like panic > for each CPU a line is printed and the stack trace is dumped. > > This information is only interesting for the aborting CPU > and on systems with many CPUs it only makes it harder to > debug if after the aborting CPU the log is flooded with data > about all other CPUs too. > > Therefore remove the stack dump and printk of other CPUs > and only print a single line that the other CPUs are going to be > stopped. > > Signed-off-by: Jan Glauber > --- > arch/arm64/kernel/smp.c | 11 +++-------- > 1 file changed, 3 insertions(+), 8 deletions(-) > > diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c > index b2d5f4e..e6c2eb1 100644 > --- a/arch/arm64/kernel/smp.c > +++ b/arch/arm64/kernel/smp.c > @@ -770,14 +770,6 @@ static DEFINE_RAW_SPINLOCK(stop_lock); > */ > static void ipi_cpu_stop(unsigned int cpu) > { > - if (system_state == SYSTEM_BOOTING || > - system_state == SYSTEM_RUNNING) { > - raw_spin_lock(&stop_lock); > - pr_crit("CPU%u: stopping\n", cpu); > - dump_stack(); > - raw_spin_unlock(&stop_lock); > - } > - > set_cpu_online(cpu, false); > > local_irq_disable(); > @@ -872,6 +864,9 @@ void smp_send_stop(void) > cpumask_copy(&mask, cpu_online_mask); > cpumask_clear_cpu(smp_processor_id(), &mask); > > + if (system_state == SYSTEM_BOOTING || > + system_state == SYSTEM_RUNNING) > + pr_crit("SMP: stopping secondary CPUs\n"); You can remove stop_lock altogether now, right? I also wonder whether it would be worth printing out which CPUs are still online in the case where we fail to stop all the secondaries? Will