From nobody Sun Feb 8 05:41:41 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022088.outbound.protection.outlook.com [52.101.96.88]) (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 8A3E71C84A2 for ; Wed, 31 Dec 2025 00:41:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.88 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767141699; cv=fail; b=LIpEyC5Vhsz6oQ3bFATzRaoHo1VIvd+9yLmSSPIDrpZyCWuZXBN08jhGA8yiKj4E7Gw/yZkcfuLCOLQmf67hOp7+OlP24NbsZScH2YmYhkh20NIYWpTqVgufCCaTqQrBKugHm9Q/2Hcq3nkzmxmrIyg5i23It2nAZJ3GaVSwywg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767141699; c=relaxed/simple; bh=f5uiEkZyYYHP9Z+NLbXcwGkeFtIoi1a0dTYNBKOTqwE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=GEGklZvlqrhir5IMtdqb7LakLgjZ2+yU68jtfpTGe3JYCJswGHm0PNhyy4dbLlFAge9TfmfhsWrvUuXsG4+lIrDENjnjESxm64A+znoCEtKEvwHRILn3k+Cdkc7vGH5GuSPxCTMiObXa9eU6Kb9rQ3dZbVnxguupEbfGoanwMVk= 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.96.88 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=S6gyBqv0ruBCQ75NfwmVTHmrB1duJL586Li/llDNjFOW6WKu3o4S68hvLNodoh/uEemlYFTyf+S6kWNXzyGbcF0c7e+8z2DW1zBE4q66Aqn0BSERP7yK7Iy/ey8stp5hWo7wn/MIHiJig0ilJ0DjaV5zgC/Ofo52cGpHhJiOUu3jYjoDE2qZdpiMXRJlsbaQYlRNaSOTa8t8Ia/lUnV3sHb9dzqoyxR1Z/JflPD4serABflLA7RA0c0RnyDpCrAO4bb0eqtdN4vYDJimfl+eU2aJaRw+JvE3/qLlzKoFrHCbH0zBCXUX+g0CATEB5ivzFVN0dE7NCxjfO0j1+1Y1YA== 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=ozr+QyivSYO1eQFB6MocL0wpQ4IZ+r5oYdSVlDX5s1dYBsZRSO7B8QkippG37XlSh8i1r4udalIfeeodEAcqL9dG73ADgdJCM4B1Wz5IpA+j2XO097VnOj4BISEHejStNuGlleGbDt6ZQdoqGevyC5dmqWpzi0J8d5avBMknSZRP5JH8SRDUPvLDJQOhLVth4eNEc5e965cFaxD2HXhPjrltH8f3P5ejkY9nbRQMB4IX1vKbSGJ3TxN21wfWS39uVPIiaIrh7MaLMrxhyj8SguOSrd/0kLMFDr6hdcOauZ9s1QVQ1Y8Pqj4ol78zTNdfr6GE6YWkBS/K5WwaWyzPuA== 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 LO0P123MB6799.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:30e::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.14; Wed, 31 Dec 2025 00:41:33 +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.9478.004; Wed, 31 Dec 2025 00:41:33 +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: [v5 PATCH 1/2] hung_task: Introduce helper for hung task warning Date: Tue, 30 Dec 2025 19:41:24 -0500 Message-ID: <20251231004125.2380105-2-atomlin@atomlin.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251231004125.2380105-1-atomlin@atomlin.com> References: <20251231004125.2380105-1-atomlin@atomlin.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0548.namprd03.prod.outlook.com (2603:10b6:408:138::13) To CWLP123MB3523.GBRP123.PROD.OUTLOOK.COM (2603:10a6:400:70::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_|LO0P123MB6799:EE_ X-MS-Office365-Filtering-Correlation-Id: a59ef717-90a9-4392-717e-08de4805586a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?0K2PhK8kQR2TS2cH9lTdvZqx/LoaTnCn2kz/epRvBsNrda5a5YR+vb/d+3vS?= =?us-ascii?Q?R8+UgO89Ms/vw3Tb/e1B/R97cPKCehc8Ocpl++qmPAn3/9kdy0FzUVD8xeh4?= =?us-ascii?Q?RdSDTKWm6sHtnAisqSuwpsb23WFT/RU6maqjidlkAGyj3CAUGDnlc9lw1s66?= =?us-ascii?Q?36XamxuolmsJddH8KQFquNch175zBQ+iAGLr2+0D8nNpMLKs46DWyv4dCyrc?= =?us-ascii?Q?jh8V8Ju3AaoYuZJYQTqBW5dxYCg0X+kAMpEziYvbZc6WV/OoU5/6UKl76eZx?= =?us-ascii?Q?mPGLld31Iy0QPg+vgGtOShiZ9ee+WJsPpECHkZ94pEQZCKOFrrVLdzbghqXb?= =?us-ascii?Q?iTn+x1ZH1khar6YrlOpDc/tHbUd4sWZOtZPzwnO0QAOo5kLqke4QmJzIyQb/?= =?us-ascii?Q?7BFJ3HupT3dJKyFZTazNTaFGrNdbeAIAa0TwuLpUFybHbIBk3SPw1h07tsQW?= =?us-ascii?Q?dIHdgJiCv9Eh6Y1+ZKu4fg4yoT/zAZiukuN3sr5wJx/ALxL6HS9kOvIBk5Wq?= =?us-ascii?Q?JLjltkjfGHW9PAUoQGUTcldgmxtVDoe0X3+eLu0vHlQ4w0pAQzCcpqotSwo/?= =?us-ascii?Q?REeZAtNBqIjWt7CGzSMSoinRKN4t0fJBUY6sOuKhXtQadZSo44M0gW9NmWkm?= =?us-ascii?Q?h96Zjz9gNtZsae3204w5p5kJSbwHioL4SVT9V+HJqt2jps5PLmGbmV/y/hc3?= =?us-ascii?Q?IQ+vki8ZIIEfevsMEa/8tsocVCGNVMeexf6bl3PqpOVU+A8j+LIQVnHE4AN7?= =?us-ascii?Q?rIDBCqF34JIjICM1sezoa793VhVwEETJhEik9jXL1tAdWW/JGJMjqCgROk2C?= =?us-ascii?Q?d6+qDGmM35Y45guII+0mh1/2/DOdcl1SyxSqrTFqzN8eIzoQ973oR5MKFEAH?= =?us-ascii?Q?eafsN3BxOW8EhvJMjeRgITCoBXKE/qSTbBTjHzQQ+81+gE8zozAOoEI+6KXP?= =?us-ascii?Q?t2fYSssSxt45fyhCOzGW1p1OgRtrC716zgHO5zIWTnTMAGBbinzohYpnjzxl?= =?us-ascii?Q?9XkMYvXGeSHW7i+7mGBQW7sKCBzGCtAAl4B3RtNS8N8S6A1XMqrN2JKiVWAv?= =?us-ascii?Q?6kjvh2otXDJaXpCg8XBnZ/mkyngCZzkOphLTtoNcE7NdcMHNR27KLigWD+EW?= =?us-ascii?Q?YC2buH2TdmuY+NOb5CcIJSzSySMvOo4xsm0aHUDrSBrqyRMpdZ9p0iSJM/i4?= =?us-ascii?Q?dMGSC38LrXcqmcHK4ME56LuL69N6jm5K38RyoBy2oHHT7fvnzMhpqvG3kb1A?= =?us-ascii?Q?bV0DZTf2dTS+PbbJuM5rRvvTlypHzTdg8/eBKTWcED8Y3wO58qNOgot849lT?= =?us-ascii?Q?E3AV64hfNDAEudZ/Bytyy4wLbSfBdPeGcz0Dt4RizI75Oh9dDCgtjDV2t952?= =?us-ascii?Q?day7Ey/OAco+CGqQf4XYsCqeUc1wanJB5cgo6Oz+JW+gACIn12eWyJ0lnZ1o?= =?us-ascii?Q?1tyDXQkjf5u/bAjz1yQL61hTmjkhX263?= 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)(376014)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vQGYaBAUe/PRaMkBlnqGBZ/Oe7QlKOm5FtH/N1Xf7S8qv221/wLScN4PAef7?= =?us-ascii?Q?woCE1vh6ugCVR61L8JSGRcIqiubpxzKLnEe9/fzNQPJklMGGsdrjM9GY4G5v?= =?us-ascii?Q?XstS3IwfrpQZnsCuMTpSkpC2NGhVwaKT0J4lwU0UaK4hrV0su6eiLqnkMiwk?= =?us-ascii?Q?dx2u8j0MeDTeitLdho/OtLUr1AWIQtJuoeSI3nVkm6YM+vSPR9K4XDa8kGaZ?= =?us-ascii?Q?Uuj+3jK1mrvLjlNku9G6NXzHVCf5+I4ulvmJOteckyxAcVP3bu9SH6+2+j0O?= =?us-ascii?Q?LXPddVtwdGTqBTzAuC03mhvOYbYOuQ43Un+SxeezqlpC8wqrUELIawKR4ylV?= =?us-ascii?Q?yF5c6qOIjCLwW6Jg3zLqkoM/QseoiZGnMoQGAidKC1mmHdP7NCqLoP2uAm9z?= =?us-ascii?Q?ePAQizu1417ky3ML/QSb8PDdZhVnBEcOGR/vUilaLY5B4Dn1KjxaSUl2I1DX?= =?us-ascii?Q?TABuFmwpTMNjH3kimuRcCqTbpj0Yu9g3tfbHyt98KyCAMfrjA4+zNa2cADU1?= =?us-ascii?Q?k+oHgw7fYumyKNfIb9txhTReCZqJJQ3UCUJv55QAToZrqsOFRVKMnYOIdwoO?= =?us-ascii?Q?w7PpkE1DB2GuMa70tEiidJ0/t0XWDpOLR00SwIeBgHc1WjWg4zaUy//wYijf?= =?us-ascii?Q?MhGlWmyd4YTbAa6DSF+PlwbDiueY3Q6s5yiGIscu1SyhKaEl8XZnZVKlSERw?= =?us-ascii?Q?fbGfJ8SCKM5M9/Df4mNzxdkf1D12MyLNNZHYiCXUxQbVk+mNHP0awLPmHyZJ?= =?us-ascii?Q?NXFnZdgwuwwWVeKRsrQ28sT3DIRu44PYchQiAWBskgxRriBzN8OkpwEht3L2?= =?us-ascii?Q?Jf3Lg3EnuG4C8/boGkIdoXtrWl6F0QlAuJRG8bNDMQxgHpLmwXcFbG0axR70?= =?us-ascii?Q?GJ/laWR3WYvK/OW6FF6NzO7f4QYTPB1gGYldDwF5tLAHQ4TVyG6bfgjBAuxH?= =?us-ascii?Q?NQ93U466D5zqg3373WtvFXZ5vkqgnASsXmmvc2CIkSOERCtB8eBxtbhohpEG?= =?us-ascii?Q?32Q66YdAu1ciZ6kZo2LDJpsiAzaXc7N/4rhA1tX/vhYNBkWl+8upRk4r8BDC?= =?us-ascii?Q?yN/gk8PEicyNl/LTiMEjiSS2yN0ky33ZRX1aha+lVOZhZ46NEvBT+hEq59yQ?= =?us-ascii?Q?6WyfB3xY5sr9XbNsAY67kDUMaeuCAhdxmSYxicEXrbOJmgz+p71Cug296vgj?= =?us-ascii?Q?sbWUGlmpDlSV3hhV+GuuLZ7hUck4wBAy6L5vftsS4pI0M4UbgyX2/Y/oLDtS?= =?us-ascii?Q?eqJNDJC7ZxysteiK2vif42EOnfYNHMLiRmJqvJC4e6qOHnuW+Mymg8I3vz+T?= =?us-ascii?Q?AD8MJhsjlDefN3oAlgCTV8uEDyDBSmVRepyxBxMsAsFRGTXa+V5tuAQDD0OC?= =?us-ascii?Q?/7i8VjGv8HLJqTw6mtOv5AW5tz5nR/gukUlPa0FQx0VGCQDEgOa6UUqer7h1?= =?us-ascii?Q?/7gK+flU6+1sOVU3TJLh55UdCauXnov8Qjc/vem0PexMqknfr+ITSC2UI3ON?= =?us-ascii?Q?MHZzh67RRO3oKXKV3yvtLcaf/VcIbkewWF1DCl+Wnov90+Jb/vFgk7T7S3Hd?= =?us-ascii?Q?4VXwz7U3SgwENtJbtLAGFIxKtmaggNbCRL8dFO1ZAQmrWR3ZBLG24XfAhLAU?= =?us-ascii?Q?neErT43BmJZK5wEQDnOsDahvvFGp1cIWvxt3sXhgXtRaqqdROIUkpz68Hc7P?= =?us-ascii?Q?fzS2JiXcOg3+dPzML5ti49iFWLKPtzOwP/TZNLSS6CBfUdHAC2LpvdT0nPXq?= =?us-ascii?Q?JCq/Imcvgw=3D=3D?= X-OriginatorOrg: atomlin.com X-MS-Exchange-CrossTenant-Network-Message-Id: a59ef717-90a9-4392-717e-08de4805586a X-MS-Exchange-CrossTenant-AuthSource: CWLP123MB3523.GBRP123.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2025 00:41:33.0659 (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: wo2DZwGlpwYHA5GzV3A8jeIQxbfhc/uiXmEYvb/Z0pbDWxysucbprMPkvAEQFzBMCAgWWPw4hIstaXc204B8ZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO0P123MB6799 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