From nobody Sun Feb 8 05:07:44 2026 Received: from LO2P265CU024.outbound.protection.outlook.com (mail-uksouthazon11021116.outbound.protection.outlook.com [52.101.95.116]) (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 A251F31D735 for ; Mon, 22 Dec 2025 01:42:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.95.116 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766367743; cv=fail; b=hP/OVJmeGapVM0Y67MjDF/ZaafXzmJ9hBnRXFzPCWyb1fPUN6bmLnKCabiS2ZlKNZj5wo1dY+qZ7Izdu/z7dcXnGk7sPw6XkQoo23SqChFQuxw4pANif6xudwAQ0hIx6iFzMUdUD+Zq6m2Wf343Zu3qsHUoSeEBw7Ut5yR4XcSY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766367743; c=relaxed/simple; bh=f5uiEkZyYYHP9Z+NLbXcwGkeFtIoi1a0dTYNBKOTqwE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=C0KrsDsd7vkbctgjtBg9c6VAVvJB2EClZ95CrIL52Y6p7nLYINphiHShTyR3/Pbzeowa6RcR7FjHiNlcdQI8ySOTjz46MiRRtfa5Zj2sAtMQUcaggCU/htEcxSJEujr5M14Lo+6Lya7pwUadnAPqb8cwoqgbxh/LZocM7ddhXjs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=atomlin.com; spf=pass smtp.mailfrom=atomlin.com; arc=fail smtp.client-ip=52.101.95.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=atomlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=atomlin.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ta/SflX42U9mOqfylCv+Me/uhiWV/OWMmq70uvyWVrnqPd4ZscAl37uTM21U4757OGpHQYGgzYvRGxIMyA/dncUDdEarJkxntyyQqqa7gBSiT3nxJZ82GtdKWH5/vDTWNE+rUdo6or0wD0qphkpwfohzcSElTVS/rrPP5LnwspUK547o+x36VM/HmBGxCaEfYLRNST/MKwF2h07mEQR7bZhJrbWLNZBMEh8FhpfrIhRj48HB/Blapd5s1OC9wrOQCFhx0qOTI1RD+Ka0ff2mbMmjMY0XeXIyOI9g8shZQl3E08H8W7Di/ugfHV1jpTlGj9nSp8UoLMxbl/OIiCX+PA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=p3kK76/JTp/o8LJYHYa0KlebQYLz1dQJAm00cngiJpk=; b=c6NBhuKvZnzD+QhL1P4fWNPqhe8ZIutoInz3qXeg286wHDqbx+so3g86jvxz77Q3QT0LZfGM5EVhACsO6vHP3L5q2SDN2eWWx89tN32oIFdKx6pUT4Cm4UZZxDRptPzXnjV27bdxXO14JwqdxcuGkbXmVIh7yn3TF2tn1nlqr1j+4vwFnzz/EWnrzYaZJUsHi2d6WepY/Y6gHpksOMs4p7ETubEfrHMgvmDgITQYLRmfJTRyJjLA1C0StOJ5jvE3k+FlflXykDn3AcR1DZCyda5l05GGFmcn+DCmNqJgsS73mGgizApc71NjPiqr5IvzW/FA85wW1/THGWG4MVdcfw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=atomlin.com; dmarc=pass action=none header.from=atomlin.com; dkim=pass header.d=atomlin.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=atomlin.com; Received: from CWLP123MB3523.GBRP123.PROD.OUTLOOK.COM (2603:10a6:400:70::10) by LO9P123MB7538.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:3b8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.11; Mon, 22 Dec 2025 01:42:19 +0000 Received: from CWLP123MB3523.GBRP123.PROD.OUTLOOK.COM ([fe80::de8e:2e4f:6c6:f3bf]) by CWLP123MB3523.GBRP123.PROD.OUTLOOK.COM ([fe80::de8e:2e4f:6c6:f3bf%5]) with mapi id 15.20.9434.009; Mon, 22 Dec 2025 01:42:19 +0000 From: Aaron Tomlin To: akpm@linux-foundation.org, lance.yang@linux.dev, mhiramat@kernel.org, gregkh@linuxfoundation.org, pmladek@suse.com, joel.granados@kernel.org Cc: sean@ashe.io, linux-kernel@vger.kernel.org Subject: [v4 PATCH 1/2] hung_task: Introduce helper for hung task warning Date: Sun, 21 Dec 2025 20:42:09 -0500 Message-ID: <20251222014210.2032214-2-atomlin@atomlin.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251222014210.2032214-1-atomlin@atomlin.com> References: <20251222014210.2032214-1-atomlin@atomlin.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN1PR12CA0019.namprd12.prod.outlook.com (2603:10b6:408:e1::24) To LO3P123MB3531.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:be::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CWLP123MB3523:EE_|LO9P123MB7538:EE_ X-MS-Office365-Filtering-Correlation-Id: 9c4d0528-d8a7-47e2-0be1-08de40fb57bd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?KuEp6h2jQh8MV76HtodhusQQ+qKA58Wca5SlsK3VzGlYZEnIO1ZfoYWSSSCl?= =?us-ascii?Q?74L3DqP/69MzVNykKz0WaRtTne+5MsJnK6sc0/zEz6MTx9vgVIKFdbsGzRIb?= =?us-ascii?Q?jXb82YAK4kYQWpHVGJr8W/bS3LirDcLN2LhDl7y6X/j5oJLYyJhCSJheXHmK?= =?us-ascii?Q?h1IeBIM+K8v5wwulO6fNC1wCCBk1++ZUYDNTaXyyF53ru8VuIuYw88f1yTaJ?= =?us-ascii?Q?ApDpE6WchH28qjD6Tr7lZufBNeE+iTqqfeJto8Psyp5lURr+Zb/bZbt0w6ia?= =?us-ascii?Q?kvnyppCAxHoq2gACKeHJoPq77KzAsfkI4/553ZwSi0KqpLLwaIFiURZDDc56?= =?us-ascii?Q?+OLEUQ4/XTv5HxmX7cQHbwnGecYzvo/8I4Wfq2UoypOCnExsOqxZgU4SkrY7?= =?us-ascii?Q?IckAAMGzDXL4XYlR7lbNC6nivclJlvuinzAXoSWiWGzZRZOuDR3wA4e3PSsT?= =?us-ascii?Q?FUvPrSpDy6Z9D8rzaA3EHUjyxqRrRJGCra+NKR1quTJdtfHHHyj/uK0l62xa?= =?us-ascii?Q?4uogpd02FBHstqb/m9lUJzA7GGdrkvKUqYlqxt+hXGHZscU9jYmQGlfMFzvI?= =?us-ascii?Q?daIQ7hGL8kzcoyJFYZ9QTXgoMBQIcwt7/+XxlvpfSJmYOWH00YuddLLwcQ7n?= =?us-ascii?Q?pHMIuyjw2J4m9cj9p1qz/VJoZPjle5JUGW3vP7XMTKfuGdXjdw8Bz357GIwM?= =?us-ascii?Q?Bb8Gnm37Igj6uHmN3EkWpuxTfZGaRelFhQODVkBDdMj8hKMj4WgNi5PDIgEA?= =?us-ascii?Q?YkfFQ1wd5Zjv98V7pNONiuRJIs414Gp0SjTXqe6Cc2gYv++az9vXkle3p6yc?= =?us-ascii?Q?9tkXXLkzwewe9aSYifd3hCQroZ1STdZJA1U7RKYeCL8Hvij8d3mB/oj2P3Xj?= =?us-ascii?Q?agp2pgqIuIZrt44Vso9n81u97QcE0pYbSj9oxnvvMzt9EyiuLQvVvYNM38t7?= =?us-ascii?Q?fZRlPwIvre1fUM78PslUYdZr8VWd98bKlnTPeg6kAc5ikjidXDdXZJTl/kvR?= =?us-ascii?Q?6h9fvvBqKuSGjDRF+OVifDlRU50g4/Y316JxSYrVSrehVwYVIb7sPOZyS0DM?= =?us-ascii?Q?9EniQKtyJSUXuBjDylPHSBi7z4C2yhWuvq9aYw/0jjpr+CrccjF0XwLb3Dfy?= =?us-ascii?Q?fiDGc1pMsNXm2HIEu+Dku/bDEL7V7csCV6YbCOMqBv9uVb5eg7+iavEZ0KqZ?= =?us-ascii?Q?+iAcS655v4JxyPW/eumvmvKyYp4FXP7AMVNQpsF7uTFG+AIod8vVxcS6vByo?= =?us-ascii?Q?DAUtUbNpXSLm2hbZFvpTJgVpJ33NIByBqDk9dsUSZgrz1gV9IB7v7oaglxEN?= =?us-ascii?Q?10wHwOTkU1Sb3LW3z5uBzfFVUaYnMhjnavN+z7BM2abUhKP5TrH4O2t483rT?= =?us-ascii?Q?syROnKA449XUCiP3USU36ebY3iUtPP64e/zbSBEh7t2lIPugaLxu/x3sdE6j?= =?us-ascii?Q?YdkXnvBS8jTUcOYEFrYzr3Kta3Qm7o9O?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CWLP123MB3523.GBRP123.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?M0OSZchSrvYcIQ/3FV7UuUM8fy+DTW07uVKlVo1sg1rcagLBCHb1w9XhuDky?= =?us-ascii?Q?T4dzIgMSXuh9Ldo7OYSCnGmhoLhhI9ZVK9DVn9oKT4oxbetF09Ur7vk5Bb1D?= =?us-ascii?Q?KXYhOjUcPRpsH7OOrwhNd+s6WX/0aTGmZkZNLlm/fgF13ki0SlPIUCLvKyeM?= =?us-ascii?Q?rwdeBxPE0K3JIqAfKsbbKiFVJceLTAVMxiU1iNADFW02WBtsf/blTq4BksRO?= =?us-ascii?Q?hxiXPjJR680JvqBPsSlgmoVuR8eXq2lpxsOARTCgK/vQaOCLOwzKbLFLuKar?= =?us-ascii?Q?PKrWsP2S/HtrUTkSoYBAoQE/UH+H4CoBCV9YNEu2dow7HXBiljSV+QXWofFA?= =?us-ascii?Q?k95oXUBooNBIMFJzVoafloAZLLRTZd7avqHNQ1M6qEFOkkjPz2V+1P619g89?= =?us-ascii?Q?XUom67J8xmuHwbcJcAhGCSKIjpyWoN+4r9wGeHmsiB4uJwC2nMCSih4R7Lgl?= =?us-ascii?Q?yZGUz/RrojH6Vb8chSC8O+R7HdxqZVI1V5pZrdcEpfEsE8kYxR9YTYsAkAi+?= =?us-ascii?Q?fSxH9A9WXZ4qo2culSKuylGxgK9thPh6DeRUTdueNnX2kJtxW1B9mJUbMUnp?= =?us-ascii?Q?vdg/nM6QoHAXsw9isnjYRvXR7a5ojUcuwCdVgEvWipWuwlMAAUbuEKXriH9C?= =?us-ascii?Q?Kxw4uNrdEvyHYw9Esr6hOSIAAdbe2zZ77OTg4gI6wBbEgy0EOTOqaIc76zzQ?= =?us-ascii?Q?5qJitjbV/2bZObcUhvMA51ZkSCpOqqH1baECf/W00CGThnvjkYfG2HQsomoQ?= =?us-ascii?Q?LmwXMiC7eiF8hZhEbT/8ugv/qmqSONPnqAvBF4Nrt8plrp+17j7I4+fJx+Oo?= =?us-ascii?Q?YB+7eeT/ic4w6ZNy2gEDI1/e4micfssBcF5avn/N+tMd2HAKLKjLVu2VncRJ?= =?us-ascii?Q?Mcy+TAP9UkvleoTqvFFMwCT7vDIN0WS2YDQuu/GK3IIb7X72pVQLKiq1yoTl?= =?us-ascii?Q?1kFOABJUOTJjYrl/cchSx0r9fCtkF2VTrV25GIlJVEcRKl+j3YPEJkHYPnxZ?= =?us-ascii?Q?iBruEPUCMQD7GLSJx19Cfr8OSxXVGzIn62EtsVjpfuhHFhEetqOe9ujq8n/U?= =?us-ascii?Q?Fs+m+34y7PnNl95Yja1szhSA99lkq8eyly5BbH9CKLFknOkf2GqoEhoWA1HS?= =?us-ascii?Q?r63LaT413bHEQrbjmylk4Ou3iny7+Nbzt1GEneXhMAcSCwlKOftAEXdC56WN?= =?us-ascii?Q?U/EZ8HMNLh/Lfw9d6+gjTBA1Hmu/wM/O/rD+haI0G5UHRQQJrzosDoIavnkz?= =?us-ascii?Q?0JsxCON6kRz7hPGT6iIhLLUMsGB2vRZUyD5PXfQloWhwjTSh73d8E9AnC4/Q?= =?us-ascii?Q?hC+ocYZUgaGZ4TlctI4Ik/gcHZpSorXfOc/h/vYDDhLZRKv9SSZzoW9hwjWh?= =?us-ascii?Q?6DznJ/XWkv9mExv0o4DWtsgh6Z/tAnrDGJIR/N1owvRFJue4l0cfTvvvJkNz?= =?us-ascii?Q?F8PNVWad5vEOaYhjKPp4PwLZ/wK6EcvfeoBrk7OEBbAV9BsKZjaLAAucuXtD?= =?us-ascii?Q?rNBLptuwRp/wwWUumk4B7dHxIjRztyoSsIfy55EJCfthM+j6qTvOazITw+tD?= =?us-ascii?Q?sZg5mHFSB63V2i/WESNi4U/9zJxvcVsqA1vOdWW87ZAaOn1hW1DaBc9ILwsJ?= =?us-ascii?Q?a+wQuP81JanrMJnYseLiUCd269o5no65y4yyRbwydDkWp7RWKccCH32Lw0RQ?= =?us-ascii?Q?AXtSNp62NfFdkSM3g3D1YiypJjOZc0ImX7CTF/SG2AzbV4n74Ti95c7e2iC2?= =?us-ascii?Q?Y4wvoQKOUg=3D=3D?= X-OriginatorOrg: atomlin.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c4d0528-d8a7-47e2-0be1-08de40fb57bd X-MS-Exchange-CrossTenant-AuthSource: LO3P123MB3531.GBRP123.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Dec 2025 01:42:19.2551 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e6a32402-7d7b-4830-9a2b-76945bbbcb57 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: sDyNtxKRs71QPv7E1fq5TYQNO6WpZ8iQ4a4l9mxpFYHWL1w9A776FWQlo2Bg2CpBUsK9oIfW5fdE7TXocSAaAw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO9P123MB7538 Content-Type: text/plain; charset="utf-8" Consolidate the multi-line console output block for reporting a hung task into a new helper function, hung_task_diagnostics(). This improves readability in the main check_hung_task() loop and makes the diagnostic output structure easier to maintain and update in the future. Signed-off-by: Aaron Tomlin --- kernel/hung_task.c | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/kernel/hung_task.c b/kernel/hung_task.c index d2254c91450b..00c3296fd692 100644 --- a/kernel/hung_task.c +++ b/kernel/hung_task.c @@ -223,6 +223,28 @@ static inline void debug_show_blocker(struct task_stru= ct *task, unsigned long ti } #endif =20 +/** + * hung_task_diagnostics - Print structured diagnostic info for a hung tas= k. + * @t: Pointer to the detected hung task. + * + * This function consolidates the printing of core diagnostic information + * for a task found to be blocked. + */ +static inline void hung_task_diagnostics(struct task_struct *t) +{ + unsigned long blocked_secs =3D (jiffies - t->last_switch_time) / HZ; + + pr_err("INFO: task %s:%d blocked for more than %ld seconds.\n", + t->comm, t->pid, blocked_secs); + pr_err(" %s %s %.*s\n", + print_tainted(), init_utsname()->release, + (int)strcspn(init_utsname()->version, " "), + init_utsname()->version); + if (t->flags & PF_POSTCOREDUMP) + pr_err(" Blocked by coredump.\n"); + pr_err("\"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\" disables thi= s message.\n"); +} + static void check_hung_task(struct task_struct *t, unsigned long timeout, unsigned long prev_detect_count) { @@ -252,16 +274,7 @@ static void check_hung_task(struct task_struct *t, uns= igned long timeout, if (sysctl_hung_task_warnings || hung_task_call_panic) { if (sysctl_hung_task_warnings > 0) sysctl_hung_task_warnings--; - pr_err("INFO: task %s:%d blocked for more than %ld seconds.\n", - t->comm, t->pid, (jiffies - t->last_switch_time) / HZ); - pr_err(" %s %s %.*s\n", - print_tainted(), init_utsname()->release, - (int)strcspn(init_utsname()->version, " "), - init_utsname()->version); - if (t->flags & PF_POSTCOREDUMP) - pr_err(" Blocked by coredump.\n"); - pr_err("\"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\"" - " disables this message.\n"); + hung_task_diagnostics(t); sched_show_task(t); debug_show_blocker(t, timeout); =20 --=20 2.51.0