From nobody Wed Dec 17 00:14:38 2025 Received: from CWXP265CU008.outbound.protection.outlook.com (mail-ukwestazon11020141.outbound.protection.outlook.com [52.101.195.141]) (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 E208D2F25F2 for ; Tue, 16 Dec 2025 03:00:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.195.141 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765854048; cv=fail; b=KZwUGllwEdLJam+vez7gcyz7jThant2xTLBnLGgul61/eXRDSyKBk8zWLVV3nJgJDVsxnroGpU55VWezyAlfPNATbMkZo9bdGTMN9kI5yBtUG5AEpa5MDH6o8z0grBqZmvBfqlUC9GR13+1Z/wzRx+4yqE/IxBrhWKRm88rjvP4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765854048; c=relaxed/simple; bh=Hs3DPYLV9bwLV5dTNgDhDiBHB2n4q4qQGOEh0IynsTY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=rhnh1QPxKoxpK3GTIsgCdCBtC46MIMi5lm5dK8P1lUCj/ul5pZ7mkaGzS5wOKz3x2PO8IY3vKYQUJ/S1JD3mzwAG6dZrGW5Ax8UwdP9XJl+CiE+cBj9OJrC7UJzb2eWpjly033tk2nLvkUrqn9IgbJWx3m74vP+KMFGchz0kcFE= 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.195.141 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=L3CESfxvHohBMX7ZDzyGD/VFpju6mZhO3aU8RCkm5EJlM9UUJLchHemglknvALGPiyw+ttO63jdGYdHI1ouTHAAt5xPCVYNYgqm2p68v0iLN9vjGsjuVRGOGVKmKahR2zJuBUUB0AEX3Ig4v6vADy+QxysHlleXKEVCl4XuLsCcZaTpjcmrs82lx2e7TGwYXVjl5//EXkMCD6s5lTBZAAnJiEClSSqrZYBnghS0x335NeiZdlbJmMk5oB6/Cf4waE64qBm6I2UFI/lkxluzsK0PhIzM9h2KrPdsM90TgBpMI7WcYjYrU4LEkdWlHNVOdmAKzjzJa7uFxZPWwa4ZeBg== 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=gmows/uhR5zNfFtPTsf7Au+8einzR5oG2BMwwCFnZtk=; b=UBrAuLCFl+mk6t5ev7ZSXGQKrVDKfk2FeuXq3DGmzY2clPXI8xQ3jdmBTB+yLI4pxQme/kSACtK+l7LRQ8AVNsEHLEtasic9dpyNUeskGgRknp9MqzESsJylEapFVbI4a9+tDdgGvTyYutunywadV3qYOTh8KJo5rA2/EppAt4Ei8JYGhqjndcWyTG2h3/xrICpnT93u0DNfe5xExTfrG0Y3F6tnAGBQiw/PEjY20JBGLDNTcpBWE1i3E4qrU8j9J77hSS7zTY7o6GJ8mAvKSthS9i5TSaPtCW29j0410bBaZ7WumVNwnFyyAslYy1kg/SnxhHBytxOkj2IQRqg5SA== 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 CWXP123MB4183.GBRP123.PROD.OUTLOOK.COM (2603:10a6:400:b1::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13; Tue, 16 Dec 2025 03:00:44 +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.9412.011; Tue, 16 Dec 2025 03:00:44 +0000 From: Aaron Tomlin To: akpm@linux-foundation.org, lance.yang@linux.dev, mhiramat@kernel.org, gregkh@linuxfoundation.org, pmladek@suse.com Cc: sean@ashe.io, linux-kernel@vger.kernel.org Subject: [PATCH v3 1/2] hung_task: Introduce helper for hung task warning Date: Mon, 15 Dec 2025 22:00:35 -0500 Message-ID: <20251216030036.1822217-2-atomlin@atomlin.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251216030036.1822217-1-atomlin@atomlin.com> References: <20251216030036.1822217-1-atomlin@atomlin.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0291.namprd03.prod.outlook.com (2603:10b6:408:f5::26) 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_|CWXP123MB4183:EE_ X-MS-Office365-Filtering-Correlation-Id: f5ff0d2b-063e-4ed5-71b3-08de3c4f4e28 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?xHTq8l2eXHB6hRbXvPCH7ec8HsCApu+GXjdFQtH0I0RHHN2YI0O+LoTi0VM/?= =?us-ascii?Q?klwBkXAL/9UrfSL+U+1J8g3Rw08HnEeHRRF7kDaBRdwV4iYgxGDCLV4kqcm1?= =?us-ascii?Q?RjCOJo6s94IN8ay+BQnwhIC6PhgCsLlPajF5eL0kobYWFbbM/ibPMQQMLmuS?= =?us-ascii?Q?cgoRujC0vVERCun3bV6k5UBZJJh7GV5mx6e2GawyKCU0Q5RH61hYsXlqrk7o?= =?us-ascii?Q?y04KPdCakh8h5zz7WKqcNt6xGuGq4tLvNWyoowezhioQp+XakshKC6ye+eur?= =?us-ascii?Q?9oH5wUEbtRjWwEoa0UVSlOFsyhCE3Xn6ccXZfAA8Yyfjd1PuwCI/IyZU9mdt?= =?us-ascii?Q?6ArZSv/IIQDIe0Mf1oIUOZ/DH2NeYI/S6YekVQ7CgMCG8/Ax6uz/lj+BO23O?= =?us-ascii?Q?WaHUIFWL5LrpjDqZ4xqPIThqUEGfaGMIzBvf8FuTEBOsuEYFJFqLuMGJZXBs?= =?us-ascii?Q?Xg4LJbvpfosb9UvgikvQfRkhTDnsZGMAP6T1mRMCEHXvHUul0DzIChBm1Gfr?= =?us-ascii?Q?i247ES0H8XsnFaoWTHQYkZbszOi9E9ZmoieiyqtPyChpFolgWNdudOB58Fk1?= =?us-ascii?Q?R0weXA31FcWP/bsPnqG9yzFQO5KWaSj+fWZTyXYH9KvwnZx1FSOmG3KBukRZ?= =?us-ascii?Q?RZzZVe++i5RG3eRq7t65Czi1Yyb0qqGXJ9/aUa6usB+gUYJ8dYS++EIXm++X?= =?us-ascii?Q?0zE7SeTrEYBb1Yz4bqx3esCT/FSYnJs5cWYKXx5I+ByaokWfMtKWxQmzRQNb?= =?us-ascii?Q?wQbrjAey81G/pnxwsIEzbF7BHbIoAvfsnIg/m3vJaWFgcYZ4YxUetmmiGT44?= =?us-ascii?Q?hCGpKUfMUzn+inapVY6reOgjkBIS9W9qRFeTP+qnf+yKPi4g0U+klvq1ilKD?= =?us-ascii?Q?4Vz+G78VghXy611Fw+QzY5K7st9gtwWxQR0wwwAcFe2Q+MTR7eSroZXfrCZI?= =?us-ascii?Q?Gx6bSV3r7lZV5kXhD7EDpBfykzQkMLULS7rb3+oc3EDpPYeiOrG+gXDc5cG0?= =?us-ascii?Q?3pit/1HI+I7wXSqIDbsu9YxVh6C4s2w6ev5AoshPqRL4pOdCQd3QiffEGQ0y?= =?us-ascii?Q?GyjvTYLlSm4ecvm+0G9zUsjmvs/7vgUYBnvz7tqukcCnz8v/J0Fl8aCh9KVW?= =?us-ascii?Q?3KlvpJbiCoeCnib7ItCtIJOcdQ3wyYV+lkpw1Np+jGNhV45bvyBy2WPIANd4?= =?us-ascii?Q?tLR+cmMjRmKt7fQIox3Z1EeALUYrWWT4G3qs1MnJnPfBblbsRmKbK8t6m9od?= =?us-ascii?Q?uW8YaEp6phe1H/VNSZ31zhTEKZCewtLQazQgkIVP5yCzu/8Irb4hz30OYQd4?= =?us-ascii?Q?ZDzT9ds+LXQn/JXycIDevisYtdMi7V3e3+0F6RPgF8e9jzF+tpz4pE+3HpVm?= =?us-ascii?Q?vO05kyVmFwrGAh+qGf0wKq9eTL/FDNlo2gRyLo1ShWAaJFlzYwQn3lgCoiRj?= =?us-ascii?Q?YKcdOscq5SqGA3vEyWWTkXZYiFkaYAAh?= 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)(1800799024)(366016)(376014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ooMYNHktJiEmANCX0zRBinuvcMEQ1Vx2Nm7O7O+In5Uj0YJXF8YXerORIjtQ?= =?us-ascii?Q?MCgKNYndzgjrX8z0J8yQB5rwwEeNIDi8RRHu6LqGc3PRbino3ZaMQpGg2U66?= =?us-ascii?Q?P9MLBjmbeyKQ16J5FjXZain1ckAdzYpRf0xh0rxaS3CGUXOXHNxXTLgdIR9X?= =?us-ascii?Q?nxCbYQ3b+qd55FtdBRU9btFQJOLihUYU6Fx+xPCbPfpznqRXIqSZCkjtq4iz?= =?us-ascii?Q?b0SpKdVcvsPtl6ttOwCC3oXQCNKCf4b27+oGRerQxgjUaq4saCuoG21SzYN1?= =?us-ascii?Q?FFU38G7cwxroCe6b5GXR/+HmZZi1AopT1UHkAsg7CfHFxBQd752F4djx2wiw?= =?us-ascii?Q?iltM48c90WkEwgPAtDh9JSaENM1ZU9KxmlGha8tz/58xeSF+et3Y3uCYdmNm?= =?us-ascii?Q?Qd6pP0Lk0cTGgonFxOvZmhXJhkCX+5kIG8xsui9nm/bdobJ3OL1gSgjmQBLG?= =?us-ascii?Q?HpcrE+u2AIHqcYHmuvfX8MV+qViBsVfJjNcMLLZhXQtNPiovHy00TSwKIfY7?= =?us-ascii?Q?jOTbaWc5Sdx/En8BNZ/2TkiomAYjcEZybaoU2wJYJA0wKV2ibgL873pPwg4U?= =?us-ascii?Q?rvBLKnA7r0asQjeITqWhBsAzJe7QsXm/3KBNU9cKi2DzFbMdD2KIwlBV7mFY?= =?us-ascii?Q?ojmlLjws85aYkgVO6LkRTjge3KXpEKkS179P6iwbxjGoHyKZzQTuwuOEinkN?= =?us-ascii?Q?E76Coa0M1tt+fPrLuRPQEPVGLVFz84Rk035DNL9nREDHSHF8nDLh1DsWMHTh?= =?us-ascii?Q?zfdQP7HnkKe2ItkPP0ih7NJHB1Ytu2FwwGbA2jRFm7DqbgZgsBGJKjk+5/u/?= =?us-ascii?Q?XRPKHOJ/TsGSW8e18KvD8K4SiUF8S/5NfDS9JkDVdV0IXB0sMMukodMQyPbv?= =?us-ascii?Q?xpGwYKiu39LUh6fYxJzw6QmNeEdLSPJfQ4V7Bl/ZNVdFi3/qWTJSw4PeZmVK?= =?us-ascii?Q?tv/nt7ySAXec/bvImSCJxQithi2ZTcKCmOabUW7FMiwlgO7CJ2F4Yu4pYKXH?= =?us-ascii?Q?Rkjj5+COygrjf/lcXOePwK6hxZGFWbeN8FelRoy0Zb5bPonKP8z0kXtwx8SF?= =?us-ascii?Q?axGq3QdvwlqYIVryDLo6n+y0rY+VMmg3OU7A4RyvEwPtz0I869vAnOKvi2Ye?= =?us-ascii?Q?piiJ1X9eHIb2uG2oFQ6NRhBj2kBSi1EQa77uLaC2Zd7GpoorVs29+UEQVdJm?= =?us-ascii?Q?9KuR20T+TS0Kovtki8Hkpu1S+L3OYogXs0ZW85/J3FyZVeQZvtC/9bOBEHN0?= =?us-ascii?Q?5Lx26tFPaLvbEIhBibtT09StmWZLrQDIpywHkTgEJMbO/5TNUpzhTr0QYYdR?= =?us-ascii?Q?iEfIFueR0kVUJ9wloezBcpEro2u5gdWE1I6eLJHhmM52BaIYWMJRWoXTcNn/?= =?us-ascii?Q?vbsCkxvtztEL/jB3qXUh4xh3Q8Ikpv9m76Bn55+utYgnQd63PtnC1FsBsktk?= =?us-ascii?Q?yAJAwaSYh0vOkJLpRpPtTHHeklPSKk83RImoWkdlsvOXuy09SSNfbwxHwYm6?= =?us-ascii?Q?Et0mTtjtsKhpWn60JW8ApGnjZobgg/gJh04CsiMWp7opcrKmLDftZNz8OkDV?= =?us-ascii?Q?FcjWq1S5QzMy2K4bwX6eQYNJLJUrMUNw2r/de6Jy?= X-OriginatorOrg: atomlin.com X-MS-Exchange-CrossTenant-Network-Message-Id: f5ff0d2b-063e-4ed5-71b3-08de3c4f4e28 X-MS-Exchange-CrossTenant-AuthSource: CWLP123MB3523.GBRP123.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2025 03:00:44.7683 (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: Z7QlgPdrH/hiuEsmKBOcsQ9jrDgpyKRKaG1D6PS3sY5LXoM+MspiTCQI56lfmNgURlk/hSBiGzAg/w8mw83cCg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CWXP123MB4183 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 | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/kernel/hung_task.c b/kernel/hung_task.c index d2254c91450b..5902573200c0 100644 --- a/kernel/hung_task.c +++ b/kernel/hung_task.c @@ -223,6 +223,32 @@ 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; + const char *coredump_msg =3D " Blocked by coredump."; + const char *disable_msg =3D + "\"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\"" + " disables this message."; + + 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("%s\n", coredump_msg); + pr_err("%s\n", disable_msg); +} + static void check_hung_task(struct task_struct *t, unsigned long timeout, unsigned long prev_detect_count) { @@ -252,16 +278,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