Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp626699iog; Mon, 13 Jun 2022 09:24:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyRVS/wB6F/ARPmOhfK9k+QoETV8k33WEYpEirLmcppWGwwkb6/58cz7nLHD3HB5INR7Euq X-Received: by 2002:a17:902:bd05:b0:158:544d:6557 with SMTP id p5-20020a170902bd0500b00158544d6557mr148690pls.70.1655137475487; Mon, 13 Jun 2022 09:24:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655137475; cv=none; d=google.com; s=arc-20160816; b=wfnMTzySt8V1QfG5DouN7VtDtgnGsZ9T/7aT/w3Di38nwYAToAU4LQe5ghh00HjMX0 43Rwk+T1F3omjMNemuTn0M0chtjp2Z+UqmZsgL8Ye8vCuqR+y4hszeSoSbEZtDCD39qz SCMiCbk2rPDcSBNxx4RpnnuvBorqkNFu4BoEPUXMUoOeFhRmiePq/TdtxT7dBrlJcGkY br1C+8iUbSzDjALKTyG3hc3Cv7woSz94s9hXq13TEbTuNGJQJsoJRqX2YuFZPr4Qcnyt eoOfJUPRD06SVPwR2EOBb1TOodvdQfhZvi6ecjNMif5NmixNm0bNVNYc4K4a2+WD3ZJ/ QuIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=FnytuxOfWZ88PmXa4wMjw0Sx+gGucs12one7e7oLK6Q=; b=UQJzY/dUJv7utc0901NzJ2Ju9PRAperZ27CyBL2ljFfk+iDkAiwy4bjhyeBlb5xRvn w75w386krDKN8qMhBd1+loXMJ5pKNSlNZ9crn8bAZK2+lqbTe+r5AzarvWmNuFX0dK3P w0JHL8EiNa3WeSCMPNBswyQlYNYIoCQcR4ELZ7IwGIxrV/v4fZ1cqEVR8Rf2EOuFlDZJ L8lgvDzUiZ0/wvSsNRPihJYC7SSsSno+qK6oWsApvJinkNGVl7GNnglXzurhMIU0BJBG keIx3FptQh7A5RF4lAu/+Gz0MPMNwJpst9fLMkB123DlkYTeDR2sUzD+Xl86Kqjb4w0t 3rrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=c5o0hxYh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id np7-20020a17090b4c4700b001e6f83a6998si17027218pjb.56.2022.06.13.09.24.22; Mon, 13 Jun 2022 09:24:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=c5o0hxYh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1359856AbiFMNRM (ORCPT + 99 others); Mon, 13 Jun 2022 09:17:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43518 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1359330AbiFMNJt (ORCPT ); Mon, 13 Jun 2022 09:09:49 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1806928E0E; Mon, 13 Jun 2022 04:20:14 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 25960B80D3A; Mon, 13 Jun 2022 11:20:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4D6CDC3411C; Mon, 13 Jun 2022 11:20:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1655119211; bh=FgqMBOq8e9O8lSu4ZhdMaLrDjbWyv3KnilifVjuSL5M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c5o0hxYh+q/PLksCLYB/zYbTov6FIVF4HiYoclJkL4Hs/0tcqjD/NXMHeTiqYkdMU lKo9dHGZ+tZ2mANKQiwFpLzGUOo54TkGaDBtPCibBKsGlQRYKjUrqscgsLITU/ByLM x/Lw1a7FJt5hOKIFgZF0oHqJWDJHoIzEPECB6xAA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Changbin Du , Sasha Levin Subject: [PATCH 5.15 181/247] sysrq: do not omit current cpu when showing backtrace of all active CPUs Date: Mon, 13 Jun 2022 12:11:23 +0200 Message-Id: <20220613094928.443535363@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613094922.843438024@linuxfoundation.org> References: <20220613094922.843438024@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-8.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Changbin Du [ Upstream commit 5390e7f46b9d5546d45a83e6463bc656678b1d0e ] The backtrace of current CPU also should be printed as it is active. This change add stack trace for current CPU and print a hint for idle CPU for the generic workqueue based printing. (x86 already does this) Now it looks like below: [ 279.401567] sysrq: Show backtrace of all active CPUs [ 279.407234] sysrq: CPU5: [ 279.407505] Call Trace: [ 279.408789] [] dump_backtrace+0x2c/0x3a [ 279.411698] [] show_stack+0x32/0x3e [ 279.411809] [] sysrq_handle_showallcpus+0x4c/0xc6 [ 279.411929] [] __handle_sysrq+0x106/0x26c [ 279.412034] [] write_sysrq_trigger+0x64/0x74 [ 279.412139] [] proc_reg_write+0x8e/0xe2 [ 279.412252] [] vfs_write+0x90/0x2be [ 279.412362] [] ksys_write+0xa6/0xce [ 279.412467] [] sys_write+0x2a/0x38 [ 279.412689] [] ret_from_syscall+0x0/0x2 [ 279.417173] sysrq: CPU6: backtrace skipped as idling [ 279.417185] sysrq: CPU4: backtrace skipped as idling [ 279.417187] sysrq: CPU0: backtrace skipped as idling [ 279.417181] sysrq: CPU7: backtrace skipped as idling [ 279.417190] sysrq: CPU1: backtrace skipped as idling [ 279.417193] sysrq: CPU3: backtrace skipped as idling [ 279.417219] sysrq: CPU2: [ 279.419179] Call Trace: [ 279.419440] [] dump_backtrace+0x2c/0x3a [ 279.419782] [] show_stack+0x32/0x3e [ 279.420015] [] showacpu+0x5c/0x96 [ 279.420317] [] flush_smp_call_function_queue+0xd6/0x218 [ 279.420569] [] generic_smp_call_function_single_interrupt+0x14/0x1c [ 279.420798] [] handle_IPI+0xaa/0x13a [ 279.421024] [] riscv_intc_irq+0x56/0x70 [ 279.421274] [] generic_handle_arch_irq+0x6a/0xfa [ 279.421518] [] ret_from_exception+0x0/0x10 [ 279.421750] [] rcu_idle_enter+0x16/0x1e Signed-off-by: Changbin Du Link: https://lore.kernel.org/r/20220117154300.2808-1-changbin.du@gmail.com Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin --- drivers/tty/sysrq.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c index c911196ac893..6b445ece8339 100644 --- a/drivers/tty/sysrq.c +++ b/drivers/tty/sysrq.c @@ -232,8 +232,10 @@ static void showacpu(void *dummy) unsigned long flags; /* Idle CPUs have no interesting backtrace. */ - if (idle_cpu(smp_processor_id())) + if (idle_cpu(smp_processor_id())) { + pr_info("CPU%d: backtrace skipped as idling\n", smp_processor_id()); return; + } raw_spin_lock_irqsave(&show_lock, flags); pr_info("CPU%d:\n", smp_processor_id()); @@ -260,10 +262,13 @@ static void sysrq_handle_showallcpus(int key) if (in_hardirq()) regs = get_irq_regs(); - if (regs) { - pr_info("CPU%d:\n", smp_processor_id()); + + pr_info("CPU%d:\n", smp_processor_id()); + if (regs) show_regs(regs); - } + else + show_stack(NULL, NULL, KERN_INFO); + schedule_work(&sysrq_showallcpus); } } -- 2.35.1