From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from confino.investici.org (confino.investici.org [93.190.126.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6E856342514 for ; Sat, 20 Jun 2026 22:02:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=93.190.126.19 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781992927; cv=none; b=nuIyjbBGZE9F+J0AGsrai2a+rFcKm20XeuyZOCr19QamflVeizBXXjfNG82tYFiabp8roYnNPCXO7qP3cxZKs2j6nCbWOdqQG/LuaDxSuvjg2bUntOpHvAnReaBc6Py/GUw0FIfkdJxlDAO16syIcT7K5x87n8JazbeT9HtEXjc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781992927; c=relaxed/simple; bh=cD3YD4V3gYfVC5hT7fhFemjGpettjjjfZH1vMMJ5kjI=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Pc1vsXdE5ufmieuPHbMiZELnFot0GD7qsdgwHihdsl9iWuRxPXfsNRIW3eubPiKPq9nMG9lJEn3L/h4ADabDDhx6cOrwsFQx1lwpHOBppULXmYheg6FR+4wWktfmpHDH9UvTRtLcqs1Hq7ZW5WDnRndlcZpiZ39PO4GzAASqqfA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=grrlz.net; spf=pass smtp.mailfrom=grrlz.net; dkim=pass (1024-bit key) header.d=grrlz.net header.i=@grrlz.net header.b=O39tmqVR; arc=none smtp.client-ip=93.190.126.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=grrlz.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=grrlz.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=grrlz.net header.i=@grrlz.net header.b="O39tmqVR" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=grrlz.net; s=stigmate; t=1781992914; bh=fj8oQv0Qq+zZvbNDkJ4EthfdsTKCb54/gIHH+gRzMOA=; h=From:To:Cc:Subject:Date:From; b=O39tmqVRxn3zHGlg4Ms/16rYacwTwMvtrHDMSV21Cso1O3TZok6xNV9V38/5tmutU y8G8YXOY8XlJn0xULjxRfT5Lx9vXBY9ht6DZLovnUxEP0hItiR56f9YBw/NNn7dnD7 hb7Jwpk2CeZUgYJ/NOt9wCUmHIfXryH19UV8Q5o4= Received: from mx1.investici.org (unknown [127.0.0.1]) by confino.investici.org (Postfix) with ESMTP id 4gjT2V2s5hz110b; Sat, 20 Jun 2026 22:01:54 +0000 (UTC) Received: by mx1.investici.org (Postfix) id 4gjT2T5f2gz110S; Sat, 20 Jun 2026 22:01:53 +0000 (UTC) From: Bradley Morgan To: Andrew Morton Cc: Petr Mladek , Douglas Anderson , Mayank Rungta , Tejun Heo , Feng Tang , ZhenguoYao , Shengming Hu , Joel Granados , linux-kernel@vger.kernel.org Subject: [PATCH 1/1] watchdog: avoid extra sys_info dumps for all_bt Date: Sat, 20 Jun 2026 22:01:40 +0000 Message-ID: <20260620220140.15479-1-include@grrlz.net> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The watchdog handles SYS_INFO_ALL_BT itself. When that is the only watchdog specific bit, sys_info(0) falls back to kernel_sys_info. Skip sys_info() for that case. Fixes: a9af76a78760 ("watchdog: add sys_info sysctls to dump sys info on system lockup") Signed-off-by: Bradley Morgan --- kernel/watchdog.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/kernel/watchdog.c b/kernel/watchdog.c index 87dd5e0f6968..bad390a9b59e 100644 --- a/kernel/watchdog.c +++ b/kernel/watchdog.c @@ -54,6 +54,16 @@ static int __read_mostly watchdog_hardlockup_available; struct cpumask watchdog_cpumask __read_mostly; unsigned long *watchdog_cpumask_bits = cpumask_bits(&watchdog_cpumask); +static void watchdog_sys_info(unsigned long si_mask) +{ + unsigned long dump_mask = si_mask & ~SYS_INFO_ALL_BT; + + if (si_mask && !dump_mask) + return; + + sys_info(dump_mask); +} + #ifdef CONFIG_HARDLOCKUP_DETECTOR # ifdef CONFIG_SMP @@ -208,6 +218,7 @@ void watchdog_hardlockup_check(unsigned int cpu, struct pt_regs *regs) { int hardlockup_all_cpu_backtrace; unsigned int this_cpu; + unsigned long si_mask; unsigned long flags; if (per_cpu(watchdog_hardlockup_touched, cpu)) { @@ -216,7 +227,8 @@ void watchdog_hardlockup_check(unsigned int cpu, struct pt_regs *regs) return; } - hardlockup_all_cpu_backtrace = (hardlockup_si_mask & SYS_INFO_ALL_BT) ? + si_mask = READ_ONCE(hardlockup_si_mask); + hardlockup_all_cpu_backtrace = (si_mask & SYS_INFO_ALL_BT) ? 1 : sysctl_hardlockup_all_cpu_backtrace; /* * Check for a hardlockup by making sure the CPU's timer @@ -286,7 +298,7 @@ void watchdog_hardlockup_check(unsigned int cpu, struct pt_regs *regs) clear_bit_unlock(0, &hard_lockup_nmi_warn); } - sys_info(hardlockup_si_mask & ~SYS_INFO_ALL_BT); + watchdog_sys_info(si_mask); if (hardlockup_panic) nmi_panic(regs, "Hard LOCKUP"); @@ -798,6 +810,7 @@ static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer) struct pt_regs *regs = get_irq_regs(); int softlockup_all_cpu_backtrace; int duration, thresh_count; + unsigned long si_mask; unsigned long flags; if (!watchdog_enabled) @@ -809,7 +822,8 @@ static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer) if (panic_in_progress()) return HRTIMER_NORESTART; - softlockup_all_cpu_backtrace = (softlockup_si_mask & SYS_INFO_ALL_BT) ? + si_mask = READ_ONCE(softlockup_si_mask); + softlockup_all_cpu_backtrace = (si_mask & SYS_INFO_ALL_BT) ? 1 : sysctl_softlockup_all_cpu_backtrace; watchdog_hardlockup_kick(); @@ -900,7 +914,7 @@ static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer) } add_taint(TAINT_SOFTLOCKUP, LOCKDEP_STILL_OK); - sys_info(softlockup_si_mask & ~SYS_INFO_ALL_BT); + watchdog_sys_info(si_mask); thresh_count = duration / get_softlockup_thresh(); if (softlockup_panic && thresh_count >= softlockup_panic) -- 2.53.0