From nobody Thu Apr 2 09:34:29 2026 Received: from CWXP265CU008.outbound.protection.outlook.com (mail-ukwestazon11020097.outbound.protection.outlook.com [52.101.195.97]) (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 6648238239C for ; Tue, 3 Mar 2026 22:13:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.195.97 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772576016; cv=fail; b=NR4OdpSRwYLkx+/Q4T3LLVkS2sbdOkMrszBN5Bch/GEyYrWgIZEUOQ+Q4dDjFfHpedk88ynr5EzlSs6QT5KxAgmdkKZJh1SpTp1UKOUoCT1cn5ixs1zoEblTmGOpo4RwA1mgQmxIdcBKjLJ5Z7TmNd1vNwsmQ/x/tBhWl7LBDL0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772576016; c=relaxed/simple; bh=hS0HQZ924XqpLBmao1+ahOp0uOA3WWwUwO1+2tD60iQ=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=ZEV9Mkpp+AOB6GU/CLNTEud92HVoxGwAh5Df578R0/DZlDTaNkwlkvDg4Q5OWMjP4oZrM/XiXbNv9QD1DzvtKuDpjExeI1VXLV6DWXYXQ/W3y6KQ1O6Pr4/ALnGqHeiHz1yeQ5RMWt/114Gma21v/qIxzBcOIw9YuCS4F56zjvg= 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.97 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=NAll/9n2yiR12DLFpGo2lCmJTlqyeYlkL8oJWFZX/IyU6D1BPkzmZvH5YEilZa+N3hLWumyAz+uMsP7LAN2BwSEzh1N8qSbbIun2Igt60gFRMRd7NpI7KCgRNPTz2WpzqA2G2TAM7cpawaMWgLzixG0NSL27QGGWbmNdLRVTy1ctwKmmcnsaiIxOKVHJZIzHu3vSiM7P8QFwvdTGA63HolqgrclZD0X8ZiOC5DlOtE6JyDZLeZKvl7FKc7fhkfc6vj9T0BBIqPwhtX2grGBAiPwXBfaTZJBkaQuv7+78INl723mGMjwzp0wFd6vfvLiofxegz0hA7Qfso3bmozDDTg== 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=MKrmTYpipqB8KWODsRRRVf8kXHGy7Bytok2YPheMlxA=; b=Lu2PHcn2oXQtC2lZMacKVBzBvd5W3oFeUXqkNXIJ5Xtm7sUE5cZHPIdAUELIiTzsO77dtdMiqvhQhgQtysJVz2S4LZwaY1rEgKjFcRjjU/SMVk5Nb22eyrtNRVC9+aiaEjMdnUpxyscIbPyLeadAJ7k+ypt2IyeyO+okmmkLvnMB0UxiRmNVDseWGYj/uOWY8ZAQynJDZJ9jaUO3jvbzYAm0ReIum9F0ryhDvmwuJO0+4dAkiA/QRx3VeGu8urtx+6FgfX8m6uSVv9Tm7jFbJxk4B1t593nOqenVxnrKbsVKn+4WttZLTcu26bNSmKuFgVcpuHuus6fDCVYQt3/POA== 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 LO4P123MB6641.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:278::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Tue, 3 Mar 2026 22:13:30 +0000 Received: from CWLP123MB3523.GBRP123.PROD.OUTLOOK.COM ([fe80::de8e:2e4f:6c6:f3bf]) by CWLP123MB3523.GBRP123.PROD.OUTLOOK.COM ([fe80::de8e:2e4f:6c6:f3bf%2]) with mapi id 15.20.9654.022; Tue, 3 Mar 2026 22:13:29 +0000 From: Aaron Tomlin To: akpm@linux-foundation.org, lance.yang@linux.dev, mhiramat@kernel.org, gregkh@linuxfoundation.org, pmladek@suse.com Cc: neelx@suse.com, sean@ashe.io, mproche@gmail.com, chjohnst@gmail.com, nick.lange@gmail.com, da.anzani@gmail.com, linux-kernel@vger.kernel.org Subject: [PATCH v4] hung_task: Explicitly report I/O wait state in log output Date: Tue, 3 Mar 2026 17:13:24 -0500 Message-ID: <20260303221324.4106917-1-atomlin@atomlin.com> X-Mailer: git-send-email 2.51.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH2PEPF00003854.namprd17.prod.outlook.com (2603:10b6:518:1::74) 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_|LO4P123MB6641:EE_ X-MS-Office365-Filtering-Correlation-Id: a38225f6-9573-4ccc-ab68-08de79721999 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: M5Dj7auHLYVsLez4UtCBt19HU9PbIXG36R4kaeP6PDFiaWQiWkiknAuZVgGY0cjll34veUx6vi8QjSqJVRO4u8W1G6Zf8H9QmVQpkoILcU7juGT9bhY+39EWpTK/GNHNFktXHHwFE54TvB+tVAMqUz4UJV82tPeqzQKFyDWt3iVIr6J44apwZrOI1lUAnyRcvH/UuuTrBFzxNsgDCruJ4YwJ8XdE3bjdo1Yu57gDHoE+Scsk73Mll+53Tw9nRmZGY55EOVKAE/0BvYzPwjynewu6/slvbLi/WD4f68//p95YL9vj1Q+/b2+sR3MVDtyDrjFUTPwL0VWfDIGJLMV2xnHNTX3NpskH2TEq0S13tZyqLfFZpTSRzHGfrhTxQmFINqVQw5qgzN8oMkwrTfct872u5tdZIErK44sHodmVPkmiIELxzLA2OGGJQo8FSSD0HkzWlDkhAcfF0lvEdJi9NlC+bcH1arx+iM+PDgEqeN8JhsbfVHj/f+FQOJw/+gdDsb150zvZLS6SsN6M6uM6/TNdFxLWJAtaB60mkEbJBI1VqQao6t73dj/4O0yw45w2ZVroleqhVHg16h6dph0/MohRwJoZtTLOqmOfNS3+POWczPLcDzhrjrZC+kA+ABVj1VyL+Yr9X3IJadfmNKy0LP7zULpQnWvjAF0tw4GCuxY7MPxXaF+8hJ89mndXkuT9JkhqIGSYWH6bB5fnugb+Ju01niw6zbh36R0hRFeLcfU= 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)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RLEFGwhI89L4MI+JKONByeZSkmHJMhpW/nnvdEUl/wV3h09qQCXe/Cb6WA4o?= =?us-ascii?Q?BzG/eUFcz6H5G/AP7xFVJYGoPD9CmDezSXrhf34TIrN9yzT4BhDuk40Q4JzP?= =?us-ascii?Q?311a1vwQ2DtBZjrwV4wfnc8eiWlGzv1psfq0cVIITFHcrgzoBfEIeUjnPNCu?= =?us-ascii?Q?ebTFKfLKUQFg8lJEqQxHNgmvm3v3jj6J3z8f3PmrOa4B8wGf6OH0UvgiKWMC?= =?us-ascii?Q?H+kSO7/EHWFkyoh1R4whlNRW4P569k0rBIgbR/iYftkDTaXfxe+j/UqcmWeP?= =?us-ascii?Q?AsI5iv96jv73xPdTdRsPqOEIPWKUOlP6NpP/23PKlho/7MyYFr+g3UFjsFRz?= =?us-ascii?Q?loB4EvauT4WgzMbaR6UVu7XywmE34CHv+Jix1JeURktA7pcTmlgweMxxlKiO?= =?us-ascii?Q?bUQyztO4PS6wf9tvChi1hxqgTc6hXTKmBz7qJRmkUy7mDvhD1P3P9L/rXJwm?= =?us-ascii?Q?VZ/WkOaCBS+ACUQLQOaM587rklE1RhuUNnTVZufmFt0gjLEhxQaVXvVm2QMb?= =?us-ascii?Q?8ZuqliGMWG4ZCxh+f33SVjaIYJgcyxJixWORHCHRCb2A3uaNCPTJ4hKnxtCQ?= =?us-ascii?Q?xDn39CDJ2eY6a82PINusJNSZb7ljUJmOMpSWefWGNfSHj0BiPzMz22z9WrIJ?= =?us-ascii?Q?1dQ4F2HO4alK0Nw4nnJi5ph7Lg5fg9wCj1rxxdMjQdCtwwdTuNsebMuC7mKU?= =?us-ascii?Q?0lb7emA119KPxONoPAScQva8wkz7j1AWuDLW6VQ1YZyP/TTTzSoeX6/7EGvR?= =?us-ascii?Q?emTRckEgPT2qf67hDSeBkskH4Qz/fjzIAldULfXuHPByCSmCIQ2l83GLe/+0?= =?us-ascii?Q?sXIglGVJIDec6Ekw1nqiL6Ykw4627OaHzQn3W+HdaaoJpGCR3l+wE8XfMBYC?= =?us-ascii?Q?lopVhOmOdsh1qm7tcwpzs6dew+eo+sj9coxcmmpdtmW3h5BIMCLrHBdM9+i4?= =?us-ascii?Q?/aiBnpatDuG0SOGZ65gja0KE95zcLK9gxqog77ypN2FwnWsyLAIoOIVxnSch?= =?us-ascii?Q?mx67yRDWVULBTdw1us34DeSHDvLfaDdp+WSIw81L62tiEjdZ5DAtuydtNfHy?= =?us-ascii?Q?DbXGlETWsiMgN3JOPVwRVzAofMKWAjXbmmFjP07ZDdIoNT0BbNHkoVo1MXBZ?= =?us-ascii?Q?a+jXhJqRZquB9YcEO8ASm81+nKN/C9uTNag7+0uMSpJu8okipRPrdgqqnmTl?= =?us-ascii?Q?nwlsfqdtE0Xany9cJL7SStvinhXzN26eccJBQ0xMkY/MGn5mqG4zSGg7wGgx?= =?us-ascii?Q?UP48S8SIGd7XjMfImpACZuEqUV1zOyimVordi2ZTh4c15Vh4S7ertxRm0fcG?= =?us-ascii?Q?zVkGDJhs2yb+5CSjSYog+LHHI2P9+ZD3dMZJJxMMNJ1PtxJLLsOyq2KeZHB9?= =?us-ascii?Q?sUs/lky3UvuuYNLG2k64Fwy9z5n0KAz5CtOtn47XkEYPYN1ES2+sxNTPIf8H?= =?us-ascii?Q?KUVpp2rsjOGREX3dVkgby47G0SNaHXW/amabdXKiLmQvSqwjcW2geom5FQvS?= =?us-ascii?Q?mx2FHUJ2uXPnc9Rs5nDzPD4Cczsy8KOjw/WknZTLuEM33foQjYjvJIfIPuhK?= =?us-ascii?Q?ghYaU/23RxUJKyK7AFb4sv5sU0crYyUhG4k4ZemwquyY+r0JR595Wjutoqzs?= =?us-ascii?Q?eHoyhUMTu1VKHpv2ySn/pjzBgruzhmgFKaOWfeodL5qZbDe5k05qvISvoZvD?= =?us-ascii?Q?0hmoWE4HXlun9AzDzIAWKdOSi1dDuH2gFvy7+41BnUb+0UlSiqs1xkUtS8qO?= =?us-ascii?Q?IfZ6IX7Tow=3D=3D?= X-OriginatorOrg: atomlin.com X-MS-Exchange-CrossTenant-Network-Message-Id: a38225f6-9573-4ccc-ab68-08de79721999 X-MS-Exchange-CrossTenant-AuthSource: CWLP123MB3523.GBRP123.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2026 22:13:29.7730 (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: SiQ0G5AE174+ITuk94nF2D1dKs6FUEMXlcHQ7OQ6/zNiF0BnbbY59kV8MVDfgnV7bvPAMBWgJXeM+qQoMEGJxA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO4P123MB6641 Content-Type: text/plain; charset="utf-8" Currently, the hung task reporting mechanism indiscriminately labels all TASK_UNINTERRUPTIBLE (D) tasks as "blocked", irrespective of whether they are awaiting I/O completion or kernel locking primitives. This ambiguity compels system administrators to manually inspect stack traces to discern whether the delay stems from an I/O wait (typically indicative of hardware or filesystem anomalies) or software contention. Such detailed analysis is not always immediately accessible to system administrators or support engineers. To address this, this patch utilises the existing in_iowait field within struct task_struct to augment the failure report. If the task is blocked due to I/O (e.g., via io_schedule_prepare()), the log message is updated to explicitly state "blocked in I/O wait". Examples: - Standard Block: "INFO: task bash:123 blocked for more than 120 seconds". - I/O Block: "INFO: task dd:456 blocked in I/O wait for more than 120 seconds". Theoretically, concurrent executions of io_schedule_finish() could result in a race condition where the read flag does not precisely correlate with the subsequently printed backtrace. However, this limitation is deemed acceptable in practice. The entire reporting mechanism is inherently racy by design; nevertheless, it remains highly reliable in the vast majority of cases, particularly because it primarily captures protracted stalls. Consequently, introducing additional synchronisation to mitigate this minor inaccuracy would be entirely disproportionate to the situation. Acked-by: Masami Hiramatsu (Google) Reviewed-by: Petr Mladek Signed-off-by: Aaron Tomlin --- Changes since v3 [1]: - Added Reviewed-by: tag from Petr Mladek - Included a more authentic description of the race condition, notwithstanding khungtaskd by design (Petr Mladek) Changes since v2 [2]: - Added Acked-by: from Masami Hiramatsu Changes since v1 [3]: - Provided a more descriptive message (Masami Hiramatsu) [1]: https://lore.kernel.org/lkml/20260208002458.3791059-1-atomlin@atomlin.= com/=20 [2]: https://lore.kernel.org/lkml/20260128204516.3473709-2-atomlin@atomlin.= com/ [3]: https://lore.kernel.org/lkml/20260125203905.3393869-1-atomlin@atomlin.= com/ kernel/hung_task.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel/hung_task.c b/kernel/hung_task.c index 8bc043fbe89c..6fcc94ce4ca9 100644 --- a/kernel/hung_task.c +++ b/kernel/hung_task.c @@ -250,8 +250,9 @@ static void hung_task_info(struct task_struct *t, unsig= ned 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("INFO: task %s:%d blocked%s for more than %ld seconds.\n", + t->comm, t->pid, t->in_iowait ? " in I/O wait" : "", + (jiffies - t->last_switch_time) / HZ); pr_err(" %s %s %.*s\n", print_tainted(), init_utsname()->release, (int)strcspn(init_utsname()->version, " "), --=20 2.51.0