From patchwork Wed Nov 6 03:04:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Safonov X-Patchwork-Id: 11229147 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 45701112B for ; Wed, 6 Nov 2019 03:06:17 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 16168222C2 for ; Wed, 6 Nov 2019 03:06:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="hjpVb0mO"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=arista.com header.i=@arista.com header.b="AA8n8y1x" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 16168222C2 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=arista.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-riscv-bounces+patchwork-linux-riscv=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ODAlz3SgjCR6CvetqewJWtihU6bL3KE7pM/Bk1WRl3g=; b=hjpVb0mOpU4JGM HhlI19zGVch1e3FpPPQz2ftfjdbXxONrJWekulYsa6/6OroLJHft2xXQucPfcffHVrHMLdUWF1CC8 gcGR6FZZkFvgdGUyberS/yNYSTcdLsh531ibhgN7XsXm2Sr28BotDi/vNY+Zrx+nO+wm2zDtw/XgM 2q1l4wEfpa7JVu9QUdQk/7LGwPg4IBGkiRERGJl4N4RcPFSmvbedboVQhTYX4Hg1K9GdlOY9UB57D Z2GzW3Nl0hPCIQQrIfOy5TNlTyA7MWCwpjrnDBD6fPFxo5McYD6IsQBTx6o957nYRXUcnxLqY/EZs zX7EO+WtspEfSKIxu9Ww==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iSBeC-0001b4-Me; Wed, 06 Nov 2019 03:06:16 +0000 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iSBe8-0001Xt-PY for linux-riscv@lists.infradead.org; Wed, 06 Nov 2019 03:06:14 +0000 Received: by mail-pl1-x641.google.com with SMTP id k7so10745955pll.1 for ; Tue, 05 Nov 2019 19:06:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arista.com; s=googlenew; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=HSPsN5AxRXcFzFJzQxd+YN63iH/ClAHwInFFkFsFbgo=; b=AA8n8y1xYDcs5QZPb4AQQOdt0lMzDK9MWRpIwAsoRpYC3ssbzNgOdabwY8zuisr4W7 pYnNOVyD8ukGT/ch5n8vZoQ6TH9ffNhoCTEzIU57e2eKQjAf6rX55cmbIas4iAi6s9qV EK+KbWJiaUxWv3Lmm1XyBUxHntfPCKpc6GBMFRki+6zQ18gLOVsrXFRVWhOMV7bul4Yu +wTGydHsU9jyjF0mwaz/ScEbacImrVQgV3/6wyRSrel08/jHR6q5aPuWPZa7NrzyeL2d m6PFh7o/s5W7TdYMmUUP7tYTiiFE/WZyWno3rubKFBbAQoIpx5uZ+rGi3h33mdhr0DKE O8kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HSPsN5AxRXcFzFJzQxd+YN63iH/ClAHwInFFkFsFbgo=; b=E65nL/u7yyU6Kn4CXpu651USHB331EgvxVEloMum0U014c/n8v7Ny9c1OaWNCHGp0d 4LgkC1lLO3R6KKJzLC09CR+rNtaE+goUzUeJl6xutBhfWK9UEoj9Tj5aMm9i60o5pIXB 6ThccsHWjsnz3DJpN3bJ7Y809lbkfnOT1uEHaNQi8rBbCeR/7z94H77boaxI8dGdEiGn gOUWxbYNKhldAASchoYGFma+pVfQ3SAuntCHcLQzyf7V5G7cxW52pkAxAf0PmnXzws1Z TStMx0ULI24wtfNsvsNzSXZxyEXw6kfOAT88RZ0+wLUwRU0PDkqGKf+GrL5qYjjLCIZN NFHA== X-Gm-Message-State: APjAAAWbtE8mBj3ArfYWhp1b0eE1hOp+MSG1KSe0v1vuggWKCOFvfVHT B42NnytvbVhaMF+rRXIv1EJWkg== X-Google-Smtp-Source: APXvYqxnNpDZ4kAMrsjebnDPVg25uvanmzFPSGDmDJu/2XQmMp+k3jC2NPQCt4fi1drpeZiIfCOCOQ== X-Received: by 2002:a17:902:6b8a:: with SMTP id p10mr180414plk.192.1573009571424; Tue, 05 Nov 2019 19:06:11 -0800 (PST) Received: from Mindolluin.ire.aristanetworks.com ([217.173.96.166]) by smtp.gmail.com with ESMTPSA id k24sm19570487pgl.6.2019.11.05.19.06.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Nov 2019 19:06:10 -0800 (PST) From: Dmitry Safonov To: linux-kernel@vger.kernel.org Subject: [PATCH 01/50] kallsyms/printk: Add loglvl to print_ip_sym() Date: Wed, 6 Nov 2019 03:04:52 +0000 Message-Id: <20191106030542.868541-2-dima@arista.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191106030542.868541-1-dima@arista.com> References: <20191106030542.868541-1-dima@arista.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191105_190612_841516_C1C55956 X-CRM114-Status: GOOD ( 15.25 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:641 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.0 DKIMWL_WL_HIGH DKIMwl.org - Whitelisted High sender X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Juri Lelli , Tetsuo Handa , James Hogan , Dmitry Safonov <0x7f454c46@gmail.com>, Ben Segall , linux-riscv@lists.infradead.org, Vincent Chen , Will Deacon , Ingo Molnar , Vincent Guittot , Paul Burton , Dmitry Safonov , Peter Zijlstra , Ingo Molnar , Mel Gorman , Jiri Slaby , Petr Mladek , Albert Ou , Steven Rostedt , Greentime Hu , Paul Walmsley , Thomas Gleixner , Dietmar Eggemann , Michal Simek , Greg Kroah-Hartman , linux-mips@vger.kernel.org, Ralf Baechle , Sergey Senozhatsky , Palmer Dabbelt , Andrew Morton Sender: "linux-riscv" Errors-To: linux-riscv-bounces+patchwork-linux-riscv=patchwork.kernel.org@lists.infradead.org print_ip_sym() needs to have a log level parameter to comply with other parts being printed. Otherwise, half of the expected backtrace would be printed and other may be missing with some logging level. The following callee(s) are using now the adjusted log level: - microblaze/unwind: the same level as headers & userspace unwind. Note that pr_debug()'s there are for debugging the unwinder itself. - nds32/traps: symbol addresses are printed with the same log level as backtrace headers. - lockdep: ip for locking issues is printed with the same log level as other part of the warning. - sched: ip where preemption was disabled is printed as error like the rest part of the message. - ftrace: bug reports are now consistent in the log level being used. Cc: Albert Ou Cc: Ben Segall Cc: Dietmar Eggemann Cc: Greentime Hu Cc: Greg Kroah-Hartman Cc: Ingo Molnar Cc: James Hogan Cc: Juri Lelli Cc: Mel Gorman Cc: Michal Simek Cc: Palmer Dabbelt Cc: Paul Burton Cc: Paul Walmsley Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Vincent Chen Cc: Vincent Guittot Cc: Will Deacon Cc: linux-mips@vger.kernel.org Cc: linux-riscv@lists.infradead.org Signed-off-by: Dmitry Safonov Acked-by: Steven Rostedt (VMware) --- arch/microblaze/kernel/unwind.c | 2 +- arch/mips/kernel/traps.c | 4 ++-- arch/nds32/kernel/traps.c | 4 ++-- arch/riscv/kernel/stacktrace.c | 2 +- include/linux/kallsyms.h | 4 ++-- kernel/locking/lockdep.c | 4 ++-- kernel/sched/core.c | 4 ++-- kernel/trace/ftrace.c | 8 ++++---- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/arch/microblaze/kernel/unwind.c b/arch/microblaze/kernel/unwind.c index 34c270cb11fc..4241cdd28ee7 100644 --- a/arch/microblaze/kernel/unwind.c +++ b/arch/microblaze/kernel/unwind.c @@ -254,7 +254,7 @@ static void microblaze_unwind_inner(struct task_struct *task, task->comm); break; } else - print_ip_sym(pc); + print_ip_sym(KERN_INFO, pc); } /* Stop when we reach anything not part of the kernel */ diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 342e41de9d64..861e79868055 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c @@ -123,7 +123,7 @@ static void show_raw_backtrace(unsigned long reg29) break; } if (__kernel_text_address(addr)) - print_ip_sym(addr); + print_ip_sym(KERN_DEFAULT, addr); } printk("\n"); } @@ -153,7 +153,7 @@ static void show_backtrace(struct task_struct *task, const struct pt_regs *regs) } printk("Call Trace:\n"); do { - print_ip_sym(pc); + print_ip_sym(KERN_DEFAULT, pc); pc = unwind_stack(task, &sp, pc, &ra); } while (pc); pr_cont("\n"); diff --git a/arch/nds32/kernel/traps.c b/arch/nds32/kernel/traps.c index f4d386b52622..40625760a125 100644 --- a/arch/nds32/kernel/traps.c +++ b/arch/nds32/kernel/traps.c @@ -108,7 +108,7 @@ static void __dump(struct task_struct *tsk, unsigned long *base_reg) if (__kernel_text_address(ret_addr)) { ret_addr = ftrace_graph_ret_addr( tsk, &graph, ret_addr, NULL); - print_ip_sym(ret_addr); + print_ip_sym(KERN_EMERG, ret_addr); } if (--cnt < 0) break; @@ -124,7 +124,7 @@ static void __dump(struct task_struct *tsk, unsigned long *base_reg) ret_addr = ftrace_graph_ret_addr( tsk, &graph, ret_addr, NULL); - print_ip_sym(ret_addr); + print_ip_sym(KERN_EMERG, ret_addr); } if (--cnt < 0) break; diff --git a/arch/riscv/kernel/stacktrace.c b/arch/riscv/kernel/stacktrace.c index 0940681d2f68..a76892b48fff 100644 --- a/arch/riscv/kernel/stacktrace.c +++ b/arch/riscv/kernel/stacktrace.c @@ -98,7 +98,7 @@ static void notrace walk_stackframe(struct task_struct *task, static bool print_trace_address(unsigned long pc, void *arg) { - print_ip_sym(pc); + print_ip_sym(KERN_DEFAULT, pc); return false; } diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h index 657a83b943f0..98338dc6b5d2 100644 --- a/include/linux/kallsyms.h +++ b/include/linux/kallsyms.h @@ -165,9 +165,9 @@ static inline int kallsyms_show_value(void) #endif /*CONFIG_KALLSYMS*/ -static inline void print_ip_sym(unsigned long ip) +static inline void print_ip_sym(const char *loglvl, unsigned long ip) { - printk("[<%px>] %pS\n", (void *) ip, (void *) ip); + printk("%s[<%px>] %pS\n", loglvl, (void *) ip, (void *) ip); } #endif /*_LINUX_KALLSYMS_H*/ diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c index 233459c03b5a..914ff610b880 100644 --- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c @@ -3999,7 +3999,7 @@ static void print_unlock_imbalance_bug(struct task_struct *curr, curr->comm, task_pid_nr(curr)); print_lockdep_cache(lock); pr_cont(") at:\n"); - print_ip_sym(ip); + print_ip_sym(KERN_WARNING, ip); pr_warn("but there are no more locks to release!\n"); pr_warn("\nother info that might help us debug this:\n"); lockdep_print_held_locks(curr); @@ -4604,7 +4604,7 @@ static void print_lock_contention_bug(struct task_struct *curr, curr->comm, task_pid_nr(curr)); print_lockdep_cache(lock); pr_cont(") at:\n"); - print_ip_sym(ip); + print_ip_sym(KERN_WARNING, ip); pr_warn("but there are no locks held!\n"); pr_warn("\nother info that might help us debug this:\n"); lockdep_print_held_locks(curr); diff --git a/kernel/sched/core.c b/kernel/sched/core.c index dd05a378631a..774ff0d8dfe9 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -3858,7 +3858,7 @@ static noinline void __schedule_bug(struct task_struct *prev) if (IS_ENABLED(CONFIG_DEBUG_PREEMPT) && in_atomic_preempt_off()) { pr_err("Preemption disabled at:"); - print_ip_sym(preempt_disable_ip); + print_ip_sym(KERN_ERR, preempt_disable_ip); pr_cont("\n"); } if (panic_on_warn) @@ -6774,7 +6774,7 @@ void ___might_sleep(const char *file, int line, int preempt_offset) if (IS_ENABLED(CONFIG_DEBUG_PREEMPT) && !preempt_count_equals(preempt_offset)) { pr_err("Preemption disabled at:"); - print_ip_sym(preempt_disable_ip); + print_ip_sym(KERN_ERR, preempt_disable_ip); pr_cont("\n"); } dump_stack(); diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index f296d89be757..04a95cdf414f 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -2002,12 +2002,12 @@ void ftrace_bug(int failed, struct dyn_ftrace *rec) case -EFAULT: FTRACE_WARN_ON_ONCE(1); pr_info("ftrace faulted on modifying "); - print_ip_sym(ip); + print_ip_sym(KERN_INFO, ip); break; case -EINVAL: FTRACE_WARN_ON_ONCE(1); pr_info("ftrace failed to modify "); - print_ip_sym(ip); + print_ip_sym(KERN_INFO, ip); print_ip_ins(" actual: ", (unsigned char *)ip); pr_cont("\n"); if (ftrace_expected) { @@ -2018,12 +2018,12 @@ void ftrace_bug(int failed, struct dyn_ftrace *rec) case -EPERM: FTRACE_WARN_ON_ONCE(1); pr_info("ftrace faulted on writing "); - print_ip_sym(ip); + print_ip_sym(KERN_INFO, ip); break; default: FTRACE_WARN_ON_ONCE(1); pr_info("ftrace faulted on unknown error "); - print_ip_sym(ip); + print_ip_sym(KERN_INFO, ip); } print_bug_type(); if (rec) { From patchwork Wed Nov 6 03:05:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Safonov X-Patchwork-Id: 11229175 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7005213BD for ; Wed, 6 Nov 2019 03:08:39 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 30D3B217F5 for ; Wed, 6 Nov 2019 03:08:39 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="sLbda2tL"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=arista.com header.i=@arista.com header.b="nFDnOQim" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 30D3B217F5 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=arista.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-riscv-bounces+patchwork-linux-riscv=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=/w1qSJBW09a9pwhLGeOhJQLc+y4IhYlp69FK6Z5JN0Y=; b=sLbda2tL0JPMlG BekNm79+zqcA1EdJ45avnaRpudoFuDeRaDajSFvvuOn9N9S7iswVDCyvI0rszF1MoxV6RRUJVO99G tWF8cbldRS91YKdvcss4rW0RAHev3+HKJbYCZVRmFWiQ//VUoJqKbQSmXjppynFG2lC6qbjBeOV8g bOq4rgJj86CtSep9H7TgGFY2uknaoCiRgwgcIp+Vtjsk+WPP+EhFajCfNj9EtCbtr18uKjlLmiv7N A9/iwp+gc0OnmWx3Wj8RN96qCCJEJNBDCyvovHaXYMkIbok/n7yP9n/oISR+iGE4DKL7DGdnpsig0 2EaX8tTuLZR95aVbGXyw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iSBgU-0003jM-88; Wed, 06 Nov 2019 03:08:38 +0000 Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iSBfm-00035w-EP for linux-riscv@lists.infradead.org; Wed, 06 Nov 2019 03:07:56 +0000 Received: by mail-pf1-x441.google.com with SMTP id n13so6016432pff.1 for ; Tue, 05 Nov 2019 19:07:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arista.com; s=googlenew; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tLGrjQosLZG8AHjWDn6T7sZjbAuo85EaMbn+8AzIsvA=; b=nFDnOQimmLsCdYbzvwdZR3kSUFKSCbsDAcAhhLy1AfE+1h7HrFowUUat3j4zmKmMRs vwzll5hy/B6Mu794RrgX239Pj3JIVk56xQ/ws8tK+uBdJ1v0sCSCZYMH8l48XyoWWMfS zg+DAMyffxkpKb/kX9sujF5cbm8qvcRMO6lM/wYKYVAZUzA6W88Cr1zBF2P7by9WhrQB IJe7S3htDNq9cheKp8p4wEtqDH9FuoZAU5hkMYoPH64ci5PnXKpZiV3OcFGDIkjtNF3s 89LihHClZaQnAJfvpB5wJd+J2n4Hzmyanj9jWy76c6s5mHdv+hT0ztUI9y5YKeuMq+79 Zupw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tLGrjQosLZG8AHjWDn6T7sZjbAuo85EaMbn+8AzIsvA=; b=gmDpbGOYozgU5/1pSCk4rzv5kuz9zyI27zyAecPE/v82HaMtIAqOvVPA1+RWHLaaeN N3RYeFkHi4lYbBzIrkCSAqnc09lZ65EWnvaVoLn19bRRk9faGQEWcvzh7v/YfxhnLr5l mx/mmXjmaKPsRk+u4bElJD1Qzw2fdmPu2A29cVa3iyHfyxSHrd5LNdOg00ntWFP2yyXl YYJSwPeDdoymE2YKz8UdJJ3YwuQmS/2iMlk3713pTOGn9XWjDZu+LOlm+Oh6mjV5YYeY O5F+U+qcBc/lUs1TXRqLjR37BYIz4pFBbSWu8dUzhXQIn3xiTIQbxhPxdNiZGP0vkLgb Ltrg== X-Gm-Message-State: APjAAAW0Cabr7dUjHhOv8u70TRXc+8O1UPhyBtJePc+qzd4+WpsHSFu2 JPuJjQdZ0iD4Bf7cpvQoe+m/AA== X-Google-Smtp-Source: APXvYqwZzJawIa8XHmLjpIkoPKKxJ5LPLMIed9NU/O2RBZWz40TcqGklpLg1gbhPjPOYH5TCQuFIzg== X-Received: by 2002:a65:5a02:: with SMTP id y2mr76403pgs.104.1573009672260; Tue, 05 Nov 2019 19:07:52 -0800 (PST) Received: from Mindolluin.ire.aristanetworks.com ([217.173.96.166]) by smtp.gmail.com with ESMTPSA id k24sm19570487pgl.6.2019.11.05.19.07.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Nov 2019 19:07:51 -0800 (PST) From: Dmitry Safonov To: linux-kernel@vger.kernel.org Subject: [PATCH 27/50] riscv: Add show_stack_loglvl() Date: Wed, 6 Nov 2019 03:05:18 +0000 Message-Id: <20191106030542.868541-28-dima@arista.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191106030542.868541-1-dima@arista.com> References: <20191106030542.868541-1-dima@arista.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191105_190754_766018_2B1050AF X-CRM114-Status: GOOD ( 10.72 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:441 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.0 DKIMWL_WL_HIGH DKIMwl.org - Whitelisted High sender X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Petr Mladek , Albert Ou , Dmitry Safonov , Tetsuo Handa , Greg Kroah-Hartman , Paul Walmsley , Dmitry Safonov <0x7f454c46@gmail.com>, Steven Rostedt , Sergey Senozhatsky , linux-riscv@lists.infradead.org, Palmer Dabbelt , Jiri Slaby , Andrew Morton , Ingo Molnar Sender: "linux-riscv" Errors-To: linux-riscv-bounces+patchwork-linux-riscv=patchwork.kernel.org@lists.infradead.org Currently, the log-level of show_stack() depends on a platform realization. It creates situations where the headers are printed with lower log level or higher than the stacktrace (depending on a platform or user). Furthermore, it forces the logic decision from user to an architecture side. In result, some users as sysrq/kdb/etc are doing tricks with temporary rising console_loglevel while printing their messages. And in result it not only may print unwanted messages from other CPUs, but also omit printing at all in the unlucky case where the printk() was deferred. Introducing log-level parameter and KERN_UNSUPPRESSED [1] seems an easier approach than introducing more printk buffers. Also, it will consolidate printings with headers. Introduce show_stack_loglvl(), that eventually will substitute show_stack(). Cc: Albert Ou Cc: Palmer Dabbelt Cc: Paul Walmsley Cc: linux-riscv@lists.infradead.org [1]: https://lore.kernel.org/lkml/20190528002412.1625-1-dima@arista.com/T/#u Signed-off-by: Dmitry Safonov --- arch/riscv/kernel/stacktrace.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/arch/riscv/kernel/stacktrace.c b/arch/riscv/kernel/stacktrace.c index a76892b48fff..5b414ba9848b 100644 --- a/arch/riscv/kernel/stacktrace.c +++ b/arch/riscv/kernel/stacktrace.c @@ -98,16 +98,23 @@ static void notrace walk_stackframe(struct task_struct *task, static bool print_trace_address(unsigned long pc, void *arg) { - print_ip_sym(KERN_DEFAULT, pc); + const char *loglvl = arg; + + print_ip_sym(loglvl, pc); return false; } -void show_stack(struct task_struct *task, unsigned long *sp) +void show_stack_loglvl(struct task_struct *task, unsigned long *sp, + const char *loglvl) { pr_cont("Call Trace:\n"); - walk_stackframe(task, NULL, print_trace_address, NULL); + walk_stackframe(task, NULL, print_trace_address, (void *)loglvl); } +void show_stack(struct task_struct *task, unsigned long *sp) +{ + show_stack_loglvl(task, sp, KERN_DEFAULT); +} static bool save_wchan(unsigned long pc, void *arg) {