From nobody Sat Feb 7 23:23:01 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022080.outbound.protection.outlook.com [52.101.96.80]) (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 61C7223EA88 for ; Sun, 25 Jan 2026 20:39:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.80 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769373554; cv=fail; b=TFI8CIyVuwh8JgMqWyISoJNJ0rf+3x0Qj/KvoCXG39fAvFfaT5Bpemcg1Wx0MToyPD8Hh6ERta+bUAKkwWFYcUhRSuXoUKkkOD2gk8vDEBCCUZ/COMhtgSHg+T1hzlQ06LQPrlofuE/6nB2nqDFhr/DWeQml9wAJQYcT7KgMYCw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769373554; c=relaxed/simple; bh=5RkjfdlwRzV7eySHIsiPTZeyuOBwHhap+/mFgKlBPcw=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=ElckC5WbFf7lReQ3L+EGKiQvnT0nxjBlsjk5MobixQmtdKBC5UrOBiA9biL8VGZAChTucoykZl/beIGtVNlAhEgQd+4g79BhGvNO0wKpa4pBZig2Ijc4IVG6Ws2k6VaiPysEqAX6gGMuTSb8wIsrLCB6BlXvTnroARTGyFBIav4= 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.80 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=mzTryh538pPL+DD+zXAU6Ze0mOz8ETwDLsKolExoc2k2BW1Xx55+eTyeQ2rdpRU4FHQjr+/z4RMfejqrWNRi6SQP6bs4h6snYdNnNBrawpf/lUPwLvGWV5ppRVaN2Ly4YyZwXlhUG6ZOGFqaBv6RSgsXrEASAOohuUYvLkJan+Bx7S07lbbOnnKjIWsHa9vMzbb8HOpqHkdYuGzizWXFWMWzhWsAvB+p1hSaG9NF5q1dcs25U9gr1S6Zw1QsRvXZ64qlug012U6c+ijdOHE3vVgKZdH5RkWN9xGYzUKAbRNngYMIztEQGVL0M2oJFQYXTRJ4dwolavqYiJxKGc3XlQ== 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=2CSZyjP3oXQhiBL7VTEnXnx0F0LuIex3o8+naU+kf3Q=; b=zS4y3gs8BPwMp3OxmK80VNFULQMDZ4uBhH7LRPO2zFK5GkLrRgX2qIdIy0d6GFA5ymi9REK7i2Otpi4iC6G6sGIWhsRVODmJDoJHdJfJYJ4wFBWZTyyz1Wh/ZxxdqEaDsKyvGTxPkpk60AKg6uwCF3JnyNnsCEaLpHWaUXiPCNwxbURt7j391gYZNdcshDSGUhkHlb7+ByHyICBP7zVUx7kiEkhHG1H452146NiNyTQbMJHLiPEUR/buiQgABQDa2nA1Tcmng6P1Z8VTZq5kRWvIJaYl/5+hwlDW1+X7+3EAnUB9Vtp7dqAD9t9S746dJiVXiN9Ufrybk9hx7kWp4g== 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 LO6P123MB7127.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:345::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.15; Sun, 25 Jan 2026 20:39:10 +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.9542.010; Sun, 25 Jan 2026 20:39:09 +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: neelx@suse.com, sean@ashe.io, mproche@gmail.com, chjohnst@gmail.com, nick.lange@gmail.com, linux-kernel@vger.kernel.org Subject: [PATCH] hung_task: Differentiate between I/O and Lock/Resource waits Date: Sun, 25 Jan 2026 15:39:05 -0500 Message-ID: <20260125203905.3393869-1-atomlin@atomlin.com> X-Mailer: git-send-email 2.51.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0619.namprd03.prod.outlook.com (2603:10b6:408:106::24) 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_|LO6P123MB7127:EE_ X-MS-Office365-Filtering-Correlation-Id: 6edc78c1-a6e4-487a-20bf-08de5c51caa6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?lwzevXanZVN9fGKEGtdtNxa102rp4M0oSpLqyPRkGohCmOvjyBWOKOoCKmff?= =?us-ascii?Q?bDd055mXHnvKVpx4Yu3zygLMrYqrB7Fnz00vNkJN4wbQJ1dOL5AKX2PefE5M?= =?us-ascii?Q?bJ0X9kBqqagAsAFqDeF2N2hkVqbooMUGLzRm1uwpOhrlLlPvUWSGINDs/T3t?= =?us-ascii?Q?1WnuAn9idfbgws/Ni8YbA52MlHKgbMwhGX22TxjLsGfZKPZNPM3nXlOg+J05?= =?us-ascii?Q?cQb07Ftsumu+2r3IW8d2DFLwARuGChUIx0Bm00x9WoJl/7MWnEpuBxI6LVuM?= =?us-ascii?Q?KsU9WkprkJqZt03qVayE3XFSgR/5Ctyqek0xOnf+RZcqBg9wJu58H6l/yD9y?= =?us-ascii?Q?YzFCecf00RrVy8eN1Do60+Q8WW3pK1rjhJa79X9myT/F98RFL5QLxN/qzRDx?= =?us-ascii?Q?vKgIJeuSvbQMWrtbHPYirQQ9AMyjJYinehf6rjLF8/Hx7cj29S3AZFJVTj1f?= =?us-ascii?Q?HRT9o8i8tH8MdwyQVPkGMo2ZTyp8aPC98ZHsJnOvIIdTqDVov4ObHIL/ebfG?= =?us-ascii?Q?e5YwcdMxT7MKp//yhD+bTYPntqn/dhSbbkRizNxF3zK52oUQwFuUC3TSgDjv?= =?us-ascii?Q?wJyE5OUdfB8asErZNQjnxXxfU2idSzMOdtAumnlJXvOdnTtDeuCuRZGbYdg5?= =?us-ascii?Q?kI3x2YFNpsRXDYdem8HiteRDcz1Sc+LIl4rArzgi0GuQoLRP+e264Sn7YhWY?= =?us-ascii?Q?o42yNe7YMzsNVd5FXUV2TTbo6czosfyQwFuw42TUu6AtWbQmoVS3zfh6urIk?= =?us-ascii?Q?owCyRbZsg629ogd7X7xgmhMs2o1yuBHvNvsQByWRSe+m5HhgRVXl8YkzE31Q?= =?us-ascii?Q?UYIg+evowTeSkenue2qWM3WvbPew2afqzR5C272Yebc3vEXIDRbDgyGcEXkc?= =?us-ascii?Q?5q/q4wTY3ev3Dhspqf6c+NM6llNzUFHkjJsdR3flP3rKSoInzCsbWrF9JC//?= =?us-ascii?Q?DGKvpThpIefuOH975Fy8fBGVa8ewUINBGC3PuO6fu09r+b9VziViwS1MgSV9?= =?us-ascii?Q?io6Lydj/0AguGCMpic8quehK524J6i4t6kknm2HoIpMfXDjPh7J6JFTNnavi?= =?us-ascii?Q?3L5dRo9nFvWz31M2CHgp2h55cs4zVaeTaMutfecl2BA3RBMBqVrvLS9aLK53?= =?us-ascii?Q?35VJSgzdMEw40asPX0ivMbq+d6AKjBGXP/6lisSXbXenTDVPz09rYzbZx2Ws?= =?us-ascii?Q?UodxZwxvKq3wtbWfz5fkqCbijF5Ge/QKbQ3/Tr+pr5pQ9SYD2+/1ywAUs3Ot?= =?us-ascii?Q?XumMJz1LqraC8AzqluZXe6aZA3jCoGAZ0syvwObj0kZpIA71fVqyxj+WDqgz?= =?us-ascii?Q?mH9zA5SDOSiXP4Ol2VAA6fdrjpENPknMi4+A37DWtjHMhYs807jcz5Jar4sW?= =?us-ascii?Q?I07O4Ii6xYMsZfFb0OfgnEJLoPsMnz3V6305fDd/AS19y98XLfEvbXoU+NGi?= =?us-ascii?Q?TigRYnpc8m4N1SvDEB83lHKUtkgNyFl7M/SWWmfvDxRsa49cRDG1kTAyfDGz?= =?us-ascii?Q?/M9nWOwwbm+nRlld6ar06/utwTKYnIa7RevjsNk7T82b+8iz/TX5CpkAX4M2?= =?us-ascii?Q?+3UX7Jiq1F9/KZxPUKo=3D?= 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)(7416014)(376014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jwFIEE2otdjdUd73uEqKYkqQrZ3QC6HEU8LoNwF8KJdIWC8eFpCc/2H5N9N2?= =?us-ascii?Q?to+DAR1anuEi7S0hQvDMvY4hw0GgcQ2itYSC3/sIuGi5+aS/BEcvzo+hHDy/?= =?us-ascii?Q?S9jbQ/oy0uypkvacKVGe6KH4E4i3P2iZf5BbyLxX+OmbLeEK8XLMA5IlRfBc?= =?us-ascii?Q?hK05OuAuVzFOVp70wgWxhcgJLPgo/CNnVgWJFHzLcz6kiKoj66LXGMKhHhWq?= =?us-ascii?Q?nkU7yYxmE8xLn8QmifCXTJeHHi0zEW68pAwZfDnkco5en0qSePSBL5ZfZMh4?= =?us-ascii?Q?bgVJ6tsJzhFHYs6xv0bJgf11sCEetx/lh4FQoidn23hq7meoae/KimMdLY+b?= =?us-ascii?Q?QwscKB5w5lvQxAfHe6QOlB+MTqBcGM76O6Thl2+GEmgSqnQLOf/Re4eANwW4?= =?us-ascii?Q?9M+Mh2G8H5k5BbiZmEc2AQZoFW9ixzC0hdIwq71gOWdnHIC1wK7SElrkesxg?= =?us-ascii?Q?NsNAbZnEQkYmSZ1kTTK7+Bx7RrvUkRnLNT+w590KSryjIda7+T/MFt70R04d?= =?us-ascii?Q?rSW7/JviESK2idGbAJgEySTnxOEirLRSWO/B0n6kSqTM2p2TNGRWZBfXtV7m?= =?us-ascii?Q?1Zez54Nv+bqINNn3anVZcApVnYQC1rLXOveCdG/S65/FhQBJd8VNL8vUBOOW?= =?us-ascii?Q?jYOaj3OH0/q3jgbUwrW8qv/8RhB01Cgew9pX0evaJBXqiUJKIyzjMx10JK4q?= =?us-ascii?Q?RyuGSdpzyT7KOI4D5xO1Zv/rgKawzfPG8Y/nvs6v3xXUr9F1/o7W+5BY+f+I?= =?us-ascii?Q?k6Kk4JQCRKKKm/Q9v14F984NL9F2xJxDbnwe34cNjFabbPGJ2eUTWd7/xclV?= =?us-ascii?Q?QvmbTIO8AxVEnzyDp4uhriPn+8VOSdbJsFX2qPWB4MtNqIwEhgNO02Jy3+xr?= =?us-ascii?Q?U+Fm/YKEID+CAYphZv1Eke36w7fH6zhp6tDnYIf2foEsQPfoIGvRWuElWgoA?= =?us-ascii?Q?FTPNzG7ehH7Pmpf4T25Jb7RQtx/jACFoT7DBLupXpdfSJQNLbinB9exMzRZH?= =?us-ascii?Q?yEY8QC2b7HGhKAVuR9Bp+bWkrAjIw3iPADVok7hfnLa/HWkYsQE9FaKAf1CG?= =?us-ascii?Q?/uZiZjTAiMKS8YyV4Klmj/L9ZOmAH+GxbvJSIjy2oDInfm/tvQFk13teC7ll?= =?us-ascii?Q?UyIDIHPJoSfE1avRSQZ1B2pjX18stAQL+FuOZE8rgYC4E/VA6+hM2o9WzBQc?= =?us-ascii?Q?D1hKUSkVQ6+MVHGPSRFajCkTMpNKaiTA4JFxD8OYvEWAcLi/PUGaTjKo/FKL?= =?us-ascii?Q?K4oVXBQU6XtDUILll00t2NboZwcQ9pPgjg0N//a//7wjL8nKU9BUYThPMskM?= =?us-ascii?Q?IZUmdqz8m96kkRN1u6I20NIMnPnqH8/C6vnyOyHV7dhpyseR0eQUwvjY3Ybh?= =?us-ascii?Q?h89V3YKhvgUDZhSdBk9t1K87Cep+s8oHj9hVmqOKE30xmDMtB65WpuoCsfXx?= =?us-ascii?Q?AUm1YtQ0jTa/y8j5QvN62M4e/jIccOGlpX7aP6rNhCLylqxqC7z2bJmiyXBy?= =?us-ascii?Q?w35QI76kInmtZJu1pR0gkLHHG3aZqOeWYoY22CBLfIghWTKGQBQMxFwEbGpc?= =?us-ascii?Q?DAWQtMx1XaMUy5vQsUj+E1Uvd9bIfFkYGMHOWmBv0yF+bD+s/H1XOf+CF/Ga?= =?us-ascii?Q?HvnqZYVZGOudnAMhZ2jUbZYeIGZ27FYhHKzfBCD+7Bee1K8bbbu1LJQGbenv?= =?us-ascii?Q?EpWk+GRu1isa98GbBNCg/oGI76/eZkBDUtILCsdIhfwNPyT6G+rwmTGEhDDG?= =?us-ascii?Q?H8oS8YbUiA=3D=3D?= X-OriginatorOrg: atomlin.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6edc78c1-a6e4-487a-20bf-08de5c51caa6 X-MS-Exchange-CrossTenant-AuthSource: CWLP123MB3523.GBRP123.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jan 2026 20:39:09.7134 (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: c0NuH//LfnVZkLztLEFbq02y+4O77/oRrARWxd8B/Tj+rJdrFh2SErdpp41JVeqBj0mvGGHn1hG0WZbrX6eDpw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO6P123MB7127 Content-Type: text/plain; charset="utf-8" Currently, the hung task reporting mechanism does not differentiate between the underlying causes of a D state, labelling all such tasks merely as "blocked". Consequently, administrators must perform manual stack trace inspection to ascertain if the delay stems from an I/O wait (indicative of hardware or filesystem issues) or a lock wait (indicative of software contention). This change utilises the in_iowait field from struct task_struct to distinguish between two distinct failure modes in the log output: 1. D state "Disk I/O": The task is waiting in io_schedule(). This typically implies a storage device, filesystem, or network filesystem (e.g., NFS) is unresponsive. 2. D state "Lock/Resource": The task is waiting on a kernel primitive (e.g., mutex). This typically implies a software bug, deadlock, or resource starvation. It is safe to read in_iowait in this manner because check_hung_uninterruptible_tasks() holds the RCU read lock, preserving the task structure. Moreover, the task is effectively quiescent (in a persistent TASK_UNINTERRUPTIBLE state) and thus cannot update its own in_iowait status, guaranteeing a stable, race-free value. Signed-off-by: Aaron Tomlin --- 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 350093de0535..608731c7ccba 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 in %s state for more than %ld seconds.\= n", + t->comm, t->pid, t->in_iowait ? "D (Disk I/O)" : "D (Lock/Resourc= e)", + (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