From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 737AA3ACA6A for ; Mon, 17 Aug 2026 21:49:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787003361; cv=none; b=blYfJyfNSPgfBqIk0Vjs/3MEBsIWNDHOgO/rTIKg8tzNCixpSwKjXDnAAK6pfyg7RUCyYJ0QY85aqCPAi3qN14rPa1sRyoJHfCzDCu+SayLAVGfxidXo4EdHY5+EycmBpC64IlTmNo3zELKyV8Ayszgcgphici35vyzFJY1z1Kk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787003361; c=relaxed/simple; bh=9Ll53mXjGucogaeh38cxR6YIr1Gx1cX+rNe3iNNXwWA=; h=Date:Message-ID:From:To:Cc:Subject; b=Xkvngf0XhaZGCbkLK8+KYVEv+6Plkji0cAwA/iNhVF2XIWYXQr0RC0yZNCFHmCeirAHLeFpHS1VZqD/CDgG/cDFOhSlaviE22t8jRfRPJpozAzi0n103pgfcs0h67n3NegLclfg/5LtaT8pg4BDOTcpLoo6mtvbNd2/cVOU1jPo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GlVNiMK7; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GlVNiMK7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D8CD71F000E9; Mon, 17 Aug 2026 21:49:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1787003360; bh=l0KHeTcbtER1Pp1P5MRqHVp+zOoktJh/Kx0wFziKZFc=; h=Date:From:To:Cc:Subject; b=GlVNiMK7VVVcbQLxaJsxz59jdtSQhCTR4RuytlBMxOFlNGykRsUjFIGp7ABSoY8y8 JCo+QTrTFkdziMSACCOEogPjtMh3+s8cxb/4rb7iZeno6O54XC5wj0WV/4LltggbBj qQoXvxKT7TN79H0lmxQ7PqARS6FQFiqdOHHRdBKzRV43aujsc5iXyLqUEZxDtQ8dFK EDRSNC7LSoduknPz3iKpuK+pQ7EcwtKeM4ZjdGt1HHaeRbJHyhH+KXFPw/Hhf3ERIx 0zOPEeQDGdF4EZccF3ReBAeJ4UAseVIgB6vx3GPfrxUTI9QI7iddyIsmAM77GWEMv3 OuWGoegR95T6Q== Date: Mon, 17 Aug 2026 11:49:19 -1000 Message-ID: From: Tejun Heo To: Linus Torvalds Cc: Lai Jiangshan , linux-kernel@vger.kernel.org Subject: [GIT PULL] workqueue: Changes for v7.3 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Hello, The following changes since commit f0e6f20cb52b14c2c441f04e21cef0c95d498cac: Merge tag 'ntfs3_for_7.2' of https://github.com/Paragon-Software-Group/linux-ntfs3 (2026-06-24 10:05:53 -0700) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git tags/wq-for-7.3 for you to fetch changes up to 20a80e7f6b71bd664c98e95589f0cbc68804d200: workqueue: annotate racy p->wake_cpu accesses in kick_pool_pick() (2026-08-13 07:00:19 -1000) ---------------------------------------------------------------- workqueue: Changes for v7.3 - Worker wakeups moved out of pool->lock on the hot paths, shortening lock hold times. The wakeup can be expensive on arm64 due to the idle wakeup IPI, and the change improves the workqueue microbenchmark there by up to 10%. - Stall diagnostics now report pools stuck with no running worker, with a backtrace of what the CPU is executing and the likely culprit worker, instead of dumping every in-flight worker. - Preparation for turning per-cpu workqueues into an affinity scope of unbound workqueues instead of a separate backend. - Race annotations for KCSAN and sparse warnings, and doc and monitoring script fixes. ---------------------------------------------------------------- Breno Leitao (21): workqueue: split kick_pool() into kick_pool_pick() workqueue: defer the worker wakeup outside pool->lock in __queue_work() workqueue: defer the worker wakeup outside pool->lock in process_one_work() workqueue: only show running workers in stall diagnostics workqueue: trigger a single-CPU backtrace for stalled pools workqueue: dump the last woken worker for stalled pools workqueue: annotate racy PWQ_STAT_CPU_TIME update in wq_worker_tick() workqueue: annotate racy sum_exec_runtime reads for CPU-intensive detection workqueue: factor out get_percpu_pool() workqueue: factor out alloc_and_link_percpu_pwqs() workqueue: release pwq pools by pool type workqueue: account nr_active by the backing pool workqueue: test WQ_UNBOUND explicitly in the hotplug loops workqueue: rename wq->unbound_attrs to wq->attrs workqueue: allocate attrs for all workqueues workqueue: rename alloc_unbound_pwq() to alloc_pwq() workqueue: skip the node_nr_active update for non-unbound workqueues workqueue: use rcu_dereference_sched() in workqueue_congested() workqueue: use RCU accessors when populating wq->cpu_pwq workqueue: BUG_ON() instead of returning NULL in wq_node_nr_active() workqueue: annotate racy p->wake_cpu accesses in kick_pool_pick() Manuel Ebner (1): docs: workqueue: Fix bracket Yousef Alhouseen (1): tools/workqueue: parse help before importing drgn Documentation/core-api/workqueue.rst | 2 +- kernel/workqueue.c | 323 ++++++++++++++++++++++++----------- tools/workqueue/wq_dump.py | 16 +- tools/workqueue/wq_monitor.py | 6 +- 4 files changed, 240 insertions(+), 107 deletions(-) -- tejun