From nobody Sat Feb 7 22:16:32 2026 Received: from CWXP265CU010.outbound.protection.outlook.com (mail-ukwestazon11022081.outbound.protection.outlook.com [52.101.101.81]) (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 7FE2F1C84D7 for ; Tue, 9 Dec 2025 04:12:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.101.81 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765253554; cv=fail; b=EvWy2xAloX5ZfVuRmffguAwgwe90FSYJfGp5FKaiAem67el41878Uhlc73qqhysglhR9noQ0IF5ywZW79LSsPnoG2iyChz41+xz1hXcdV13eQeoFeCQhkYOU/Fs+xqisA90Uq0pD2HweZKnLxj/iA7e8DGwLlykVYlW+P3GDiEw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765253554; c=relaxed/simple; bh=lkX07fd5TP6nD4xH1seKkR1nszpQJIDt3ahH01nRAsw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=TBjPrBsdJmKJNmaXUJOY7Q1uWZH03EOQfwE0BtaFopFiA0fE7Tc99jLhciF7hwcEvmu9dpXy0FCkv8ezB0mbfCXN1Bh1A0RhfFw2of4zSh7npLbeswIh25VYqwLqIqkopn4seFUAZRGkgezDtZRZajfrUj4qcKobyuxlm30RetU= 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.101.81 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=N0sXhWl6WYnJrEi//U+0EU8LlOEHritf/AMnMP0f90JVp+c/7nw/NIiHsAwfxEsPGlWUrXor2QNBejhd0jtJDXh3vsJGBRNAgxFg0Xe92L+etYKvYe1zXKqgZh1fG961jfIud0qULzPRuegAgX9UFAGUKsg9qf1Qw37+rv3h8yIxqr19vWMxsPJQv9qq2xmBdoJVG0wxt36QtOZaZ0nHCQrfts7VFUvGKtDJmOyoCdcdBHTU385KAxy/CnTl9PusOmQ/LWK2pvi22ls9nLFfnXm75q+hv17gvxeAXs4ZM0Xcs4VW06luyPbOlhsDRQAjONZb8vMt8YzrD1A9fHxPHw== 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=cVuhDHAZixsYN+ntxszvdtyNYHI5537lJUGA45FlOpE=; b=sCifkkLcLJP2Al1qCFx0zT3K0BbAVQYVhO3eo7wb2RHpB1SG0oFxrrcJVa0CNocUAVZbAsvDXgc3OewFjSg8EdLlu6JN2lDMch2DfPKq1czr9JT4oJIYOdu6xgkUX1p8PW7vbMEIi8wBm7ql2lT7Jokv76kSXxErvJARJXDmFRLUEEZ3gZKDQdT1hhtOV8y3Rmmy+FMB3cD8mdb5LyaaLGrTst9SXNeF+ZOaUzzpBgMxqO8rja+yPhKyXRqYsh9nM2szsfMcZXhez5EDvFK5YylIzzUczfHTTcq37UfKskPXohLvN3F8u0PGijkEPYxZFvVt4C1WLc5J69oNNhA2kw== 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 CWXP123MB6253.GBRP123.PROD.OUTLOOK.COM (2603:10a6:400:1a9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec 2025 04:12:27 +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.9388.013; Tue, 9 Dec 2025 04:12:27 +0000 From: Aaron Tomlin To: akpm@linux-foundation.org, lance.yang@linux.dev, mhiramat@kernel.org, gregkh@linuxfoundation.org Cc: sean@ashe.io, linux-kernel@vger.kernel.org Subject: [PATCH 1/2] hung_task: Consolidate hung task warning into an atomic log block Date: Mon, 8 Dec 2025 23:12:17 -0500 Message-ID: <20251209041218.1583600-2-atomlin@atomlin.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251209041218.1583600-1-atomlin@atomlin.com> References: <20251209041218.1583600-1-atomlin@atomlin.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0072.namprd03.prod.outlook.com (2603:10b6:408:fc::17) 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_|CWXP123MB6253:EE_ X-MS-Office365-Filtering-Correlation-Id: 3bede7c9-fdd9-4e2b-a821-08de36d929c1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?w4bdtWpHx/Qf8lI6E+OeYc/l/Rgm//cvYK6Nncd4Tcq3nb4FkMiLgenruVIR?= =?us-ascii?Q?s6/n1rNYDhzxAtm3JMTpvz8lGqOmFB60BJXmiBwFwvMi1akPmjshh0g64p0J?= =?us-ascii?Q?yA2uHjQcO9oMEFGTpxATStsPOorQSfuCoHMceGSwzTMtHEV4pR+/tW7J1ypd?= =?us-ascii?Q?xJu6gVPPeMcbCxZXjC4chmfp8rGU0Jyfgr2kCugFIqWC99NJYRb5/b+JS0hw?= =?us-ascii?Q?icoDdh60eb62p/XpP3hI9TR++kdwq4Zu/M3qSqviwJYqVcueN1AoXDV63tYw?= =?us-ascii?Q?BBNlZApLF0awQy+4ekMVvTbFF1bBvJh+EXVQ4Qx1tL+4EdR0+3XLVUG0T8oc?= =?us-ascii?Q?28KtnpD88rQbUDKE9WNU2ONjFzCu5B1ngcPMyxmAMAil8cllV1bfpVpU39U7?= =?us-ascii?Q?JoEEmHtgatWIvbDT66AAO89KN6w1vROmv06VClUwSSeUpuLQWGw/QTryioo5?= =?us-ascii?Q?X00YkdAAMaozO0ZaGUyqJSfvyzbylBJF8rKiZ8E33BtJAs5FiAqhmX6s6uI0?= =?us-ascii?Q?AApZtSEX/PYtb/8s6klRMno4mW8/HPxfHzkrHokguNDutYvizH1P9iM3jh7E?= =?us-ascii?Q?ts+c087fUAj0NZdIxusKqovGMwo/Z0spIXtmv86vsG1PPQxplJY9/GGADRPX?= =?us-ascii?Q?acVdNnwa6NzTdbLt2iXxcGOfGL5PnnRlfa+FZSVcQp6g4c4tJhGhbVHHrkVM?= =?us-ascii?Q?6ZJqkayuW9qMs42r16dlEOXFkZuVQqzgxrsOD3eMg/5Za2TLAz8Jk3fVPfP2?= =?us-ascii?Q?rD6n8V9CDn2A2lv5yFArdC2DgHr9jvZ/DqEY2yZQ+F3P6LSf8jnXkDcO568O?= =?us-ascii?Q?9BOja9RznQHfhcdSUAQN4BuDmI20BTbdi/34XIwVDg7nH/f2fMcomnTBEDCT?= =?us-ascii?Q?bhcm/v9wS4apZ1F0ke8G/pYTcJGPk9tsD+Xy0oE4SQRibTZ7AYSKHuddyA4A?= =?us-ascii?Q?iuCvwktPXDQQPz0JHQQXucPaBUi6V0jIAwWfF58iOML0aVo7yPBDPSyqVl2v?= =?us-ascii?Q?7WNqvwcRnA0PekG+wvpe+gzb92IVhZnyaAgf0cmGoG8+gp9m1Aum9f4ibPJK?= =?us-ascii?Q?lAKPM1Z4qcBSD+IcIZOZWckoiwEiXXKfA44S2UXel5R5C4r1Ak3amQtQvuPP?= =?us-ascii?Q?6xfvohuhHyeLHSd4CezHo4cs9cvcCN0qtKBAbbPGpxzzKYK81m7yreZQD5oY?= =?us-ascii?Q?qXQRF/L/J4RzyG9TuIwMjfdv/yxjIqEGoLOkDHobhXVHy6Uu+/yXPR3aNWsV?= =?us-ascii?Q?VSgi8IYsajXa8j9ztCfylabMmdpv4hPMrxU5rmMln5En7nxUL5kooRA41Ra6?= =?us-ascii?Q?goHAD5toP95ebsArjxFPzzk3Nax6E7ueUW9+E9+NgatQbLGaXNtslg/Q2FkS?= =?us-ascii?Q?KF9cJD7V9jWlwoRtjhhfS7i7qxm/3IeYr7qWrNj2I7VRS5o9m4RLKzRcXONm?= =?us-ascii?Q?J41gQNNPmSIYZPvpGJpae4ry53KoZK27?= 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)(376014)(366016);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pXDBgeBpxdCtLEc+8+lO8J+waqH/RqxoCY0gByI+TlfTM647rTP6FbhrxNZf?= =?us-ascii?Q?UEOV7j+i7T2r8ohHSl554FYq9SSN93crm3KYYnneGXWKqraOLVtmaeYuvHDM?= =?us-ascii?Q?gfrmBZTUNqFavhMSZodr9hJWUowdvH46f8H5hzEK2G7pMmAHstwM1qXFDohx?= =?us-ascii?Q?daKqXmoEpa3K727+08v5siyAASW2Ame91HG/2CgJaTRIT7iRE6GdPA7qZ5hd?= =?us-ascii?Q?HXGJsLFxn+pcuTL454TjGvxIxQ6mujfXvjtnMSlllQS5j5KUJMxE3eyPYko6?= =?us-ascii?Q?bPbJgj95alcIGEEf2VPvxy41IjODTfaH5RURyD83R3ZdL/+EFxSze+TZrWfC?= =?us-ascii?Q?u3Gc0aVUMnvUxwpbvv9Vhz/6NMwMkBiyrWUBDZIJXZWhSKaoS/dq9S1ZfaGd?= =?us-ascii?Q?6vjFGHqMKtJQVybotSiGCiu7LsIrNI/FS4u+uaDRB04vK23hiszqGre6AZXf?= =?us-ascii?Q?zpX6qC7dWvGZFEtBPU/4M+7aRose7iOmn8+mQccNlBb6GKX1y9mbedN46wjC?= =?us-ascii?Q?d3L0b9FTym0Iaibd6AnLJKYEVgrmKOcQpnnsOqB5A+yKeXpGR0zemXCnkkRM?= =?us-ascii?Q?tkGAZTnmpfFzATarG6CXnkf7kELs+nWAQZsdBwa2yWLCPFezkWD02XCEd0Ra?= =?us-ascii?Q?i6OohHmVWWu1MxiYSHwnyEdremtdBm2cutYg8WzRbk0lv3SBDh9ecNFUxw6P?= =?us-ascii?Q?A6+d2ww4IVT6ESRgggoYso1vuCei2Ymlr7BGeXt3Xsuh1V+wv5/bTVT7Csn+?= =?us-ascii?Q?mFUK8yGLhr8kXlxNWQoJEtBSc6Tds6+OCR+LHhWQAKhAbtlxqiKx0pOIx+vG?= =?us-ascii?Q?8KUQBDo+wfFgwmt7e6wIVG1r7z3tkLduPDEf393ZCzuRZeShK4FZ5pOsObBg?= =?us-ascii?Q?j9gibyWdcFHd4TdF5Yp9sKgn+J9iOdYUJraAouV7iMVVrsUwpL8QGH4XChdj?= =?us-ascii?Q?Xn5y7YHgrIsLjbmKmdlCgsDAX5kYETqgpopLrfRDxHmoI4odpXWyZnMDLFA+?= =?us-ascii?Q?ALGkFTut7TFkBEfPUX1//oIQudkgWOAt/9TpvoV4Qqx8VXXGNWgMJyAqtItI?= =?us-ascii?Q?eb9jUJ7UGpth82u1wCnU/uAnPMSn/XJufsQ6KqC2XDQBc69fkzclmjpj497N?= =?us-ascii?Q?YJ/Tn672jVlrJyf2+t2pB6bz/ZUuUb8rB+OxuuFLqZBYDKbhjmuOjxGTV88s?= =?us-ascii?Q?Zc4ex0oeJrYJ+PMJ9n3RxSGjF/dlfjTmhjrFqKo46PXnh+cTWzyDqlBKgJaj?= =?us-ascii?Q?1nhui+6Rr83o00t5zmlAV1Ff7jqjV4uBo1HGQP/0k+kF57x18hJooOBk3HGM?= =?us-ascii?Q?UL6qtuhJF9lgHTYNJEMcZa641flF1l7PZxsCKAwz6TZKQtmkErLmDvKHfce8?= =?us-ascii?Q?/7y4DWtFY6AJDHd50iv6Ga+1fGV/8MviMci0NOITKraNuNptS0c5eRrG7gzr?= =?us-ascii?Q?W9h3zf06XHaU4S6WUiMkW+z2A6mtbvKwGUwOTXDm40Ol2ZNICx+X8ZiuYpft?= =?us-ascii?Q?pfRjv8aLrh4m5LXo2jwWX1zy2E3+VhRpnTrFxi5RQ3Y8gSasR+tZPmEPcTTm?= =?us-ascii?Q?nC6hnx7TmyZvrxrtL8Y3DBUFL9UtQUF8fD/0PWuk?= X-OriginatorOrg: atomlin.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3bede7c9-fdd9-4e2b-a821-08de36d929c1 X-MS-Exchange-CrossTenant-AuthSource: CWLP123MB3523.GBRP123.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 04:12:27.3130 (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: KUhBC3eBLBaAHi8if++pW56AtH01J4yPt63vNEz4gMzzm1CMgAAKSRrM9e2jBzDI6kCBgkWUcdFOdq5OILTk9Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CWXP123MB6253 Content-Type: text/plain; charset="utf-8" Consolidate the multi-line console output in check_hung_task() into a new helper function, hung_task_diagnostics(). This patch ensures the entire diagnostic block (task info, kernel version, and sysctl advice) is logged to the ring buffer via a single pr_err() call. This is critical in a concurrent environment to prevent message lines from interleaving with other CPU activity, thus maintaining contextual integrity of the warning message. 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..d5109a0994c5 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: The struct task_struct of the detected hung task. + * + * This function consolidates the printing of core diagnostic information + * for a task found to be blocked. This approach ensures atomic logging + * of the multi-line message block, preventing interleaving by other + * console activity, thus maintaining contextual clarity. + */ +static 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" + " %s %s %.*s\n" + "%s\n" + "\"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\"" + " disables this message.\n", + t->comm, t->pid, blocked_secs, + print_tainted(), init_utsname()->release, + (int)strcspn(init_utsname()->version, " "), + init_utsname()->version, + (t->flags & PF_POSTCOREDUMP) ? + " Blocked by coredump." : ""); +} + 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 From nobody Sat Feb 7 22:16:32 2026 Received: from CWXP265CU010.outbound.protection.outlook.com (mail-ukwestazon11022081.outbound.protection.outlook.com [52.101.101.81]) (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 768B3271470 for ; Tue, 9 Dec 2025 04:12:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.101.81 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765253556; cv=fail; b=polPJovF97VmrP3ZIfQ7xdsRUIUMDPoyy53ZFt+ysSgGEOonuiURwwsaVJbwA0wFiMcKjAzKwGOQfpDvkA/8om6tr1OC9KEeY0gAA2xNcT9ngMFBIVl7W+w0yhKeTWrFZISfAU2XDepq8sw91lztQHe8lRdabkkhcFwj4fN36A4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765253556; c=relaxed/simple; bh=h2xrBP/nwmIwlAUH5QweyN80aE5we2N3jwUpTRp7iZQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=QNEok3R5zNe77FHzWZTaGpILaN+17oWQeYFWIRu8wPVQmPABnNa05tUaSqiXSIafdMPDWMmgQM/8AmeY7T5yV+oYPU7NhEG3KTcVw9Gp0q/Q9dDSKMRUrdP167jdJg8vS053/oB6dR19VdUPvB7+diR4w/OTGwjfDvzWue1gBIE= 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.101.81 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=GESQGOBqbCOx3hiKxsXGKP4YnsLHyJHFKyEZl9RZ2BGI4PWa+P2IZ+ueHdq5k7BReFli61040ItZ738e5sqyPVGLqNR2xvrVo21UZ5seyMc5OX1b7pIJ6nbwllWOV0veqDrvwGOBz74uoEteIVO1/L9r4dMpMAsDuQfscY89o3ztbSRBtvMfYGzinD2wEqpDBPE9r5W/NVLOWfAPG5HxBTrzab9T4qs/J62A7pmbhJyQzQXDE1YXVRZUsT3aS5bCMYoYgFZI4Z5R+YMoz7fnNqYL7upkxTB/gKCwMrNikvq32mzc5/rs7W/xi7dV8czdYHiBR3Vp92tkKjxA4Bwcmg== 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=U2Bwu9fGgk1pVv8urRZclZ2w5EcVzweJH42OOhUV8iY=; b=oWwd4A3LprO7fZcIp8umuAP2550okLkU0SXWu+2Vp+iQCN8jULNTmavXqiMZ5EBJOWVGK+xOPO7w7XUsOmt42Gmtrvis1Cwti4A91Pj3gN4X4nXOHos9KBSQUabfm7V6Bcdz0oD5kDtBg15Og0KVdj9MmIMgeCcN6cqzblh5bAu7Q0dggi52ysFAhwxmV+LTt4dyN5VkMS47FXtQhAngp3uZJM5dvzfrPhpZwOkmuDRoTxhKKVVhcUIGMV8+qgrPVwtsr2xWHpTGuPNBb7FIgsACeQ7ddyuO9l7dhaUakX4HG9f/B1QN5JX3/fDpEXvKxz1+yE35IUCAGlXyE4g3KA== 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 CWXP123MB6253.GBRP123.PROD.OUTLOOK.COM (2603:10a6:400:1a9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Tue, 9 Dec 2025 04:12: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%5]) with mapi id 15.20.9388.013; Tue, 9 Dec 2025 04:12:30 +0000 From: Aaron Tomlin To: akpm@linux-foundation.org, lance.yang@linux.dev, mhiramat@kernel.org, gregkh@linuxfoundation.org Cc: sean@ashe.io, linux-kernel@vger.kernel.org Subject: [PATCH 2/2] hung_task: Provide runtime reset interface for hung task detector Date: Mon, 8 Dec 2025 23:12:18 -0500 Message-ID: <20251209041218.1583600-3-atomlin@atomlin.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251209041218.1583600-1-atomlin@atomlin.com> References: <20251209041218.1583600-1-atomlin@atomlin.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0715.namprd03.prod.outlook.com (2603:10b6:408:ef::30) 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_|CWXP123MB6253:EE_ X-MS-Office365-Filtering-Correlation-Id: 5d2369c0-b42f-49e2-a3ad-08de36d92bfe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?dmtNHnNBMwgYOxiGCLcZi0ZA62GQOsUxMtm6fYrWzhMVtSjObwpXyem6Xs5O?= =?us-ascii?Q?GdOaSOtNlt/BY2Lxx7AsIZ/cb0cxCt61RZf4r680m33QxnGHfB5sa78Iv7xv?= =?us-ascii?Q?CRv4wf8O25IT1hbSqxj9lk5LH8XvpCKZsUHJjyCp7l0MAWkrxdfyMxTi/B14?= =?us-ascii?Q?wG0v4sqtYJ3Aq+TkV3zRQWvQldI3k4u+sq1o94s5q+P1DpXkdBNmMkzNvEiR?= =?us-ascii?Q?8dbATmrwkM5E9qvSHa59kqbjzQOOAeUiymiLp0IEEwkvRMnbsU4x6gU5lJb1?= =?us-ascii?Q?y5SGxJGhksxEdTZueOtjXEsXe5ojgPn5hafXciSWMNYU+Anwrup6Tep53YKX?= =?us-ascii?Q?lO44Fq9wnNx2jy/cxrAWRGownWbKSGFFUOp2917365wb/gFQvgbCC9c/aN1t?= =?us-ascii?Q?Q+tR6w6N/ZKqz0PCNWz50tp7KUklf2TalGzUAOPSQM2fFoKFbptr2+xu4LVq?= =?us-ascii?Q?ABW4rohp1R4a3SwSOtZ+H2iHy6nk1smZYwqATDWNdrskCNa9zf1cFonjdREF?= =?us-ascii?Q?bAO/KN9SXGkWeuvfUmfe7/pKObTB/ODR9UMqSKicifodyiIyq7rORzt731XJ?= =?us-ascii?Q?jkMvcjaBgXaBlihDvexE2orPSLAdu4SnklhQBH0GnOQNeCG5UMNJ0Kp2aroc?= =?us-ascii?Q?O+OrqKY15cF4pd6guxM6uH+ArQS9UFhZNa2ALCxAlomZfM5TVUeexyOd9+/B?= =?us-ascii?Q?eC0F51kAQZs3hHcbdiB9GHwBHFaBrwWFVtmMqkqR5nutGxdHtgDnNZDlnjxi?= =?us-ascii?Q?L2r3shdw/uHGHVB+ziXFjvCj5ioii85R7+K2xxW/PKKJc4xgnDbeNGFCjNRq?= =?us-ascii?Q?jLjcZygl7R3Oe1YE0wmNQ9ThL6ZGpByjA/SS9ZiyNVayjzb0q7VafWGA7q4t?= =?us-ascii?Q?XKIAki8rGcQLQSYnf9P3Wl+fEgFLimfyXldYyajRmozXigFi1a4EnT0cgoTY?= =?us-ascii?Q?DMI0haLnsXMc21opL6+Q6JDAmSy+1ecZB4BvAY3aD9cSFfDyBlYjfmLbqqiz?= =?us-ascii?Q?eYdBE/VAlHfvz9aIaZ2+GYud80LeW41bsZviWHCScrIpb5L7lfXlqtXmVN1K?= =?us-ascii?Q?zVpY7gisRrKyoldjV9T1LpH7IRR3UOShrt6GgTIZ+cGzlQ8/DOq7+d7/HbPC?= =?us-ascii?Q?c0o16kZhvv+QA6BQNBNQML8fI0sl8nWdq2y1dAcVakl9YZEpc1qOwor0fnvr?= =?us-ascii?Q?LfnJ2niOBzLBtrXW1ydYaNAvHwBQ+X1zOONlkrJWVqGkjLe0BMhV+hhHF+pX?= =?us-ascii?Q?k8xFzcjPjtQDV3Eb+NUq7ud1JAbpqdpW0nUx1ZXx82ulgYKWzgyHyf2073b/?= =?us-ascii?Q?Kh+Irfna4DmOFIqOKnLfm+2gLe67Tn49eUI8nrLS2CyO7ScQ4hRIjCWKAOZf?= =?us-ascii?Q?MKeYsJrU0CLgoe2YUvPXAsARwDpqg1a5qSQTNX43QAHcFmk6GHNzJOAGHiAh?= =?us-ascii?Q?bxzB3ZqcOwiONizwF8T8ezzQs8MN6Xb+?= 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)(376014)(366016);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?6yiVVpawmW86SMterEnM/6ng4JrU3k07Wp9sR5y3cpM1vNFl725vuyHsh5rk?= =?us-ascii?Q?YvL4SJWFTJxlQ3DnTsP+TY4r6nT9f/Z1ORleZ6etOZjxnw6yEAQEtN5vePgT?= =?us-ascii?Q?E8JPVIlVmnVIUp0p91mwgxBR2fMCJ95YLrvSpks8yJn5fgCZ1lfN2FK9sQgo?= =?us-ascii?Q?6KTt/8MnLaxKBteSS4jiWw77bTpojylEXfwJsadizu+wCr9SxInIp7cR1cUH?= =?us-ascii?Q?MiRSgJewOhNDbPZ/BJNRHN7oxo4aKtcUnTnQ0vBoUvkP2Y7mCS6yJGFUlPHA?= =?us-ascii?Q?EHhFZ16tSbHCj9oAhkzCRkHYUah7A0dYcKFdmiI4blZWDWEOl6dr5wY7yU7K?= =?us-ascii?Q?4C3asNTm38+NQwwz0FoT3E3SxyrydWPjw6Rl4o7v6+s9YXIqT1nPql4NBWls?= =?us-ascii?Q?Jm9/Lm5fEZtVlB9GByVOw1m7fuywXlnT41CCc3YVSOvHTKdLVZKGhA+GcmKv?= =?us-ascii?Q?SoB8hobLiz1YY6e36NBuq1yv4aP5UaJ2x5hUDGKyfJ6e6rlaSWmt0aGQ/pQ9?= =?us-ascii?Q?y5u5P5tlrEoKxPd0IWWESQ8xQnUeA/G19nV7hHhcijl4FX5UMOVhbR9+m6bU?= =?us-ascii?Q?dYZs0zYurJMXgxvDdwsoigZkbOis97LnvVfamD2EfzUqSxyTIyPQmqJ6S01j?= =?us-ascii?Q?uyNk2fLEc7y7IceOvMEXOtrU8qetf+x64WzIucKwtKYTJEB5PODU9KcAmelS?= =?us-ascii?Q?K/74agQNc43/bOMrXTWALtJSqIzOJ51jMAvKhDyn3IlQU5e0rHyDlQLsM2Ve?= =?us-ascii?Q?T9iNYfDklGJwFK3kLM8Jl82Ax0ktSiwJMiKcUej+paEmvJD/rFPTjB1bW31q?= =?us-ascii?Q?/C1euWGMPJwa16YyPdvp1sU7LYV1+5Sbh5xgtNvWtAXHNSIxVMP1Z2arNfcR?= =?us-ascii?Q?7HzRk9qDPELmzdSj2/7MnycCsG0AZPG+eUXJKiFbWK0dRSjMwAGhC8VxPgqh?= =?us-ascii?Q?01lH3LGzDIuOi6lbaEjwqkTnOqAtyVfU2B25nV0EoTOXbogPuZno8cCGdEhU?= =?us-ascii?Q?u5H0M1B8bJ0DIJT9eW6ORIIWX9c6u6JZ9TRzIIcn6Kq6fr4PUAfVVK/D7rK8?= =?us-ascii?Q?uGt9IGEbRHQBthigLNZruAYCT8uTDQtrgPHPmWKqe13RVtMsxOH53mUoAkba?= =?us-ascii?Q?sIjVAeck6PyWPu+r95G6fxFQrtzkHJT+b07L99Ulo9IgC58fSOstOkO+OeY1?= =?us-ascii?Q?DduvLCIx2NNiSP9ZOQZCUdAxLArBIG6aY0BCzXfoTMtcNAS0bVb5C7eU0kQH?= =?us-ascii?Q?D1YF1IGYmHYlFocVNyDmDS4/Frx6sIKZVZM6ltJpDRvh1yIGMIY0J5UbI6cN?= =?us-ascii?Q?VKGjhL0fatpjo1djZEW+YtxHC9QIth09NGhEVA1VNAho+gsFEk45jo2+r/cq?= =?us-ascii?Q?ZHjEVYQOg0AgtqyZYSCjb6wFlgcLbxQ6vtYtwD2dPfFGDhf3SN5oj93EznGH?= =?us-ascii?Q?bW5mf39mRKGJUPCYzkBr9sdgoEaVOEqc7ykf/XxxgVE07ZzytAB1DHnQpP/s?= =?us-ascii?Q?S4fJWEGpJTJe8FOLKMrT2xei18nYv/rLC6Xl9y84tqirmA4+J8+P460rr39M?= =?us-ascii?Q?C5y4HFHpoe5HmN43u5iLxZ23vKm+Ci51GG3xIQHA?= X-OriginatorOrg: atomlin.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d2369c0-b42f-49e2-a3ad-08de36d92bfe X-MS-Exchange-CrossTenant-AuthSource: CWLP123MB3523.GBRP123.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2025 04:12:30.8765 (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: RAiCbWEjPW8sO0tq08COTxK90fBCHoR6TI2dFtk/Ly5w6lL9wi82ZQRg5lPT31m0MGQzkbRc8cjHcRkAodX0mg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CWXP123MB6253 Content-Type: text/plain; charset="utf-8" This patch introduces a new write-only sysfs file, hung_task_detect_count_reset, directly under /sys/kernel/. This file exposes an explicit control point for resetting the /proc/sys/kernel/hung_task_detect_count counter. Currently, this counter persists across the lifetime of the running system. The new interface allows administrators to reset the count after investigat= ing an incident without requiring a full system reboot, making it easier to tra= ck new hung task events after intervention. The store handler enforces strict input validation, only accepting the value "1" to execute the reset operation. Signed-off-by: Aaron Tomlin --- .../sysfs-kernel-hung_task_detect_count_reset | 8 +++++ kernel/hung_task.c | 31 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 Documentation/ABI/testing/sysfs-kernel-hung_task_detect= _count_reset diff --git a/Documentation/ABI/testing/sysfs-kernel-hung_task_detect_count_= reset b/Documentation/ABI/testing/sysfs-kernel-hung_task_detect_count_reset new file mode 100644 index 000000000000..41dd30171c9c --- /dev/null +++ b/Documentation/ABI/testing/sysfs-kernel-hung_task_detect_count_reset @@ -0,0 +1,8 @@ +What: /sys/kernel/hung_task_detect_count_reset +Date: Dec 2025 +KernelVersion: 6.19 +Contact: Linux kernel mailing list +Description: + A write-only interface to reset the persistent counter of tasks + detected as hung since boot. Write 1 to clear the counter and + restart diagnostic tracking without rebooting. diff --git a/kernel/hung_task.c b/kernel/hung_task.c index d5109a0994c5..035652dabf10 100644 --- a/kernel/hung_task.c +++ b/kernel/hung_task.c @@ -539,6 +539,37 @@ static int watchdog(void *dummy) return 0; } =20 +#ifdef CONFIG_SYSFS +static ssize_t hung_task_detect_count_reset_store(struct kobject *kobj, + struct kobj_attribute *attr, + const char *buf, size_t count) +{ + unsigned long val; + int ret; + + ret =3D kstrtoul(buf, 0, &val); + if (ret) + return ret; + if (val !=3D 1) + return -EINVAL; + + WRITE_ONCE(sysctl_hung_task_detect_count, 0); + + return count; +} + +static struct kobj_attribute hung_task_detect_count_reset_attr =3D __ATTR_= WO(hung_task_detect_count_reset); + +static __init int hung_task_detect_sysfs_init(void) +{ + sysfs_add_file_to_group(kernel_kobj, + &hung_task_detect_count_reset_attr.attr, + NULL); + return 0; +} +late_initcall(hung_task_detect_sysfs_init); +#endif + static int __init hung_task_init(void) { atomic_notifier_chain_register(&panic_notifier_list, &panic_block); --=20 2.51.0