From mboxrd@z Thu Jan 1 00:00:00 1970 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: 8bit Content-Type: text/plain 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 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 investigating an incident without requiring a full system reboot, making it easier to track 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; } +#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 = kstrtoul(buf, 0, &val); + if (ret) + return ret; + if (val != 1) + return -EINVAL; + + WRITE_ONCE(sysctl_hung_task_detect_count, 0); + + return count; +} + +static struct kobj_attribute hung_task_detect_count_reset_attr = __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); -- 2.51.0