From nobody Thu Apr 9 23:26:11 2026 Received: from stravinsky.debian.org (stravinsky.debian.org [82.195.75.108]) (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 EEA6F19CC0C for ; Thu, 5 Mar 2026 16:16:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=82.195.75.108 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772727366; cv=none; b=h9LBd/R29L+5qI1lLBs5Wj3fnPEU2TiYnZA8up8RexkTpZF+zqowQCZcLRCuQIImyYkZreZyBswMikg4H8HR4Aro2qGrIlk5T1nm8AkAID13aKyr6LNT1d6J1GKgDkhLJx9fxNSCzJdeOOrfhBBoy2v2x7eQuubZi16NQk5Ct8Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772727366; c=relaxed/simple; bh=6EydzvmFj8FtEPXreGAsQ9uPpRkJYUhi0mAr3wk1XNg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rNjsY/I5/CYgE55nOCoaALt4HR5CvNMi4z50Ip4sTvaVH+qwEcu5t36K/3bWUz8sxFziE3/cKIj9A0tbs5Ucy35HI6RWcz5w3/iKAIU8Wudm+GQSUkEXv1rvkAwTalIPitAridBpN8kyNSDN3HrTMdl9hZ5CGuUCbGMqEhiIqq4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=none smtp.mailfrom=debian.org; dkim=pass (2048-bit key) header.d=debian.org header.i=@debian.org header.b=ViA7B+iD; arc=none smtp.client-ip=82.195.75.108 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=debian.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=debian.org header.i=@debian.org header.b="ViA7B+iD" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debian.org; s=smtpauto.stravinsky; h=X-Debian-User:Cc:To:In-Reply-To:References: Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description; bh=VZ95mweHQ1vmkIUmkfYL7umUDQqMZc9sVmEAZmR6MeU=; b=ViA7B+iD0neS8Q3gVksWODD1fC H6Iu3mmPvRecMwF4Tmv6ZGqNMjYs5VZg3/S6TxdBpYKXbtEw7hP1XOFn6rqmVmwtk9HIueBz+JLb8 AbAyon6mbX4+9bC/GmeuaDtj4nOg8/GftJ3rAz/dXlGKFb/YkQughKSYnstw5EeOwQrKtj4zpnzLT U5hS6uDEDm4hRQOayWb0UqyLVZQKurmdE8/I6hsMnKN7SlrC8OWkYO7C/MP4iRPqPKveGOPTQnMHq 1ivP2e01OOlJAH4qsUM6FrfjCVD99FrdFtcPnU+5AUZJy58JGAoiCoOAl2RtyGEo1LCZ58TewyRlG EWnAo5iw==; Received: from authenticated user by stravinsky.debian.org with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.94.2) (envelope-from ) id 1vyBMn-00GqqJ-CS; Thu, 05 Mar 2026 16:16:01 +0000 From: Breno Leitao Date: Thu, 05 Mar 2026 08:15:38 -0800 Subject: [PATCH v2 2/5] workqueue: Rename pool->watchdog_ts to pool->last_progress_ts Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260305-wqstall_start-at-v2-2-b60863ee0899@debian.org> References: <20260305-wqstall_start-at-v2-0-b60863ee0899@debian.org> In-Reply-To: <20260305-wqstall_start-at-v2-0-b60863ee0899@debian.org> To: Tejun Heo , Lai Jiangshan , Andrew Morton Cc: linux-kernel@vger.kernel.org, Omar Sandoval , Song Liu , Danielle Costantino , kasan-dev@googlegroups.com, Petr Mladek , kernel-team@meta.com, Breno Leitao X-Mailer: b4 0.15-dev-363b9 X-Developer-Signature: v=1; a=openpgp-sha256; l=3162; i=leitao@debian.org; h=from:subject:message-id; bh=6EydzvmFj8FtEPXreGAsQ9uPpRkJYUhi0mAr3wk1XNg=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBpqawz+HFuZiX3bVrygyQi68X7XuG2pybr6mKiT oX3kEA0dpmJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaamsMwAKCRA1o5Of/Hh3 bfCDEACoGVew6HYwSbOZ+DkWskdcZiGfBoQr0laHxcHIq0agPX9g1LWjgEKN/3FQ7a1dBeI00EA UL91ZTGNg6YqYZAx//lXujrySlNEb0Ko7ZWnGlCeM9H0WsYVJgAlLIBrcPnDSPb0/V5HtbhY1cg Vja5yOXmlZSCP1ttjNX2lV6E7UXA79WTbmCfZ9gXJ1QpHq5cK9sM8D5Kjn08JdE4wofrOR9C9yO NCyTXPglYpPg+HuDurx0ztFC62CTLHiXtKqAxb28RKOtdM3rcxTVmPjJsFUX8xokE8Z3lAHfm/K u3LdZYHkSsJ2Si2ZN+L2+pCgA5QyUZLVXKgSRpskyDnmCJFzSYVLCyJUffBVUP6PYbGaI9fiBJ2 1v1fcqrmw2d/gx9ODlugma2rZkjl/CfM99j0Q1PsE1+bxmeh0mcEU1qqDFO3Jpc8ZCHJYV7tin7 4y1+l4KfHfSCYhM4kJjmOs9IgeopQprH8m6nWyg8fDd/w4KftudZ/uhBUuJZUMzqE9OryzNEGJE WaS3ulMLTLBDvRJI012R2NdCZuKdujposRxtglXHSX2lR5BOygws28gC+m2AEC/X9NdyAdjotTV RGgw22egYGcu+qU+emLklvtw4JW6ecVS1SugupFrPbnu5h8f6MCR5G+y+gtAtMKzWAAWB5Ojl1d uwkufkwMyEyxr6Q== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D X-Debian-User: leitao The watchdog_ts name doesn't convey what the timestamp actually tracks. This field tracks the last time a workqueue got progress. Rename it to last_progress_ts to make it clear that it records when the pool last made forward progress (started processing new work items). No functional change. Signed-off-by: Breno Leitao Acked-by: Song Liu --- kernel/workqueue.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 1e5b6cb0fbda6..687d5c55c6174 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -190,7 +190,7 @@ struct worker_pool { int id; /* I: pool ID */ unsigned int flags; /* L: flags */ =20 - unsigned long watchdog_ts; /* L: watchdog timestamp */ + unsigned long last_progress_ts; /* L: last forward progress timestamp */ bool cpu_stall; /* WD: stalled cpu bound pool */ =20 /* @@ -1697,7 +1697,7 @@ static void __pwq_activate_work(struct pool_workqueue= *pwq, WARN_ON_ONCE(!(*wdb & WORK_STRUCT_INACTIVE)); trace_workqueue_activate_work(work); if (list_empty(&pwq->pool->worklist)) - pwq->pool->watchdog_ts =3D jiffies; + pwq->pool->last_progress_ts =3D jiffies; move_linked_works(work, &pwq->pool->worklist, NULL); __clear_bit(WORK_STRUCT_INACTIVE_BIT, wdb); } @@ -2348,7 +2348,7 @@ static void __queue_work(int cpu, struct workqueue_st= ruct *wq, */ if (list_empty(&pwq->inactive_works) && pwq_tryinc_nr_active(pwq, false))= { if (list_empty(&pool->worklist)) - pool->watchdog_ts =3D jiffies; + pool->last_progress_ts =3D jiffies; =20 trace_workqueue_activate_work(work); insert_work(pwq, work, &pool->worklist, work_flags); @@ -3352,7 +3352,7 @@ static void process_scheduled_works(struct worker *wo= rker) while ((work =3D list_first_entry_or_null(&worker->scheduled, struct work_struct, entry))) { if (first) { - worker->pool->watchdog_ts =3D jiffies; + worker->pool->last_progress_ts =3D jiffies; first =3D false; } process_one_work(worker, work); @@ -4850,7 +4850,7 @@ static int init_worker_pool(struct worker_pool *pool) pool->cpu =3D -1; pool->node =3D NUMA_NO_NODE; pool->flags |=3D POOL_DISASSOCIATED; - pool->watchdog_ts =3D jiffies; + pool->last_progress_ts =3D jiffies; INIT_LIST_HEAD(&pool->worklist); INIT_LIST_HEAD(&pool->idle_list); hash_init(pool->busy_hash); @@ -6462,7 +6462,7 @@ static void show_one_worker_pool(struct worker_pool *= pool) =20 /* How long the first pending work is waiting for a worker. */ if (!list_empty(&pool->worklist)) - hung =3D jiffies_to_msecs(jiffies - pool->watchdog_ts) / 1000; + hung =3D jiffies_to_msecs(jiffies - pool->last_progress_ts) / 1000; =20 /* * Defer printing to avoid deadlocks in console drivers that @@ -7691,7 +7691,7 @@ static void wq_watchdog_timer_fn(struct timer_list *u= nused) touched =3D READ_ONCE(per_cpu(wq_watchdog_touched_cpu, pool->cpu)); else touched =3D READ_ONCE(wq_watchdog_touched); - pool_ts =3D READ_ONCE(pool->watchdog_ts); + pool_ts =3D READ_ONCE(pool->last_progress_ts); =20 if (time_after(pool_ts, touched)) ts =3D pool_ts; --=20 2.47.3