From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 EF84F33C182 for ; Thu, 5 Feb 2026 23:30:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770334212; cv=none; b=Rvx4GeuH9NJn2dGaygpeS0seADeCsdXUNE+MipFXEFjdCs6J2WefFim4kZe36SflArfspBVZ4wcGNFdT6YXqa1zmVGNBId4byKu+J0ryD0pyYBA77j2NvePNq/530x9j27iT+hLC6Ec/zm5iasX3+UEbkEIwTGmzYJtnHJUpMMM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770334212; c=relaxed/simple; bh=28vXnzipmEd9OVf3loxI5XZwzRCVeR/iaqk+eCePu18=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=MrT7FMUA96YC3bg7JsSWGkQ6pmow1qTt+HMB9CNN5IoFaI8tViix7Ch6EryyaLZniyrgMS9pELxIqpCpGjbBdv9Jv3IYqrC62fHaFs0H7WII19kpGZ9/nlg8jO8g06VaQt4hK0oDeAkekV2Ib25TFRqAE461kSAGPRw4lXnp0Ik= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QATupXoN; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QATupXoN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 43F0FC4CEF7; Thu, 5 Feb 2026 23:30:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770334211; bh=28vXnzipmEd9OVf3loxI5XZwzRCVeR/iaqk+eCePu18=; h=From:To:Cc:Subject:Date:From; b=QATupXoN7a8czwaHFN5vU6vrUbvQ3BRNHlwe0seW2hOy03NKLZ8BDMdE3Ws2VkiWr xJ/nApHsgIBq3PeOEh7pFn+XJmMX6/ukWIF6rFmrHtgXRbc1ePhV0w+TtoT1b4Krxd bJAF0z5kIlEF25Ypvoj9D6hXsMZfpL4WdlGQzT8kQXuWYb0AGQ3XXu0vNr65fxI3xo Dxwy61Bd+wSa9LolR8dfUG/aMd+o/HUJk4ww0Pfo0D1mSTSlbTWtDJGtyS6+TQVpqF 1niVxt8kV8hXR57ir3JFBg8xAND3V2fV9x8r/6QHI7PVOVLqLIkxBPowFCvfRw3I02 1j/6Ky5rtuGmA== From: Frederic Weisbecker To: Linus Torvalds Cc: LKML , Tejun Heo , Waiman Long , frederic@kernel.org Subject: [GIT PULL] Kthread changes for v7.0 Date: Fri, 6 Feb 2026 00:30:07 +0100 Message-ID: <20260205233007.6891-1-frederic@kernel.org> X-Mailer: git-send-email 2.51.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Hello Linus, Once the merge window opens, please pull the following changes since commit 9448598b22c50c8a5bb77a9103e2d49f134c9578: Linux 6.19-rc2 (2025-12-21 15:52:04 -0800) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git tags/kthread-for-7.0 for you to fetch changes up to fa39ec4f89f2637ed1cdbcde3656825951787668: doc: Add housekeeping documentation (2026-02-03 15:23:35 +0100) ---------------------------------------------------------------- The kthread code provides an infrastructure which manages the preferred affinity of unbound kthreads (node or custom cpumask) against housekeeping (CPU isolation) constraints and CPU hotplug events. One crucial missing piece is the handling of cpuset: when an isolated partition is created, deleted, or its CPUs updated, all the unbound kthreads in the top cpuset become indifferently affine to _all_ the non-isolated CPUs, possibly breaking their preferred affinity along the way. Solve this with performing the kthreads affinity update from cpuset to the kthreads consolidated relevant code instead so that preferred affinities are honoured and applied against the updated cpuset isolated partitions. The dispatch of the new isolated cpumasks to timers, workqueues and kthreads is performed by housekeeping, as per the nice Tejun's suggestion. As a welcome side effect, HK_TYPE_DOMAIN then integrates both the set from boot defined domain isolation (through isolcpus=) and cpuset isolated partitions. Housekeeping cpumasks are now modifiable with a specific RCU based synchronization. A big step toward making nohz_full= also mutable through cpuset in the future. Thanks! ---------------------------------------------------------------- Frederic Weisbecker (33): PCI: Prepare to protect against concurrent isolated cpuset change cpu: Revert "cpu/hotplug: Prevent self deadlock on CPU hot-unplug" memcg: Prepare to protect against concurrent isolated cpuset change mm: vmstat: Prepare to protect against concurrent isolated cpuset change sched/isolation: Save boot defined domain flags cpuset: Convert boot_hk_cpus to use HK_TYPE_DOMAIN_BOOT driver core: cpu: Convert /sys/devices/system/cpu/isolated to use HK_TYPE_DOMAIN_BOOT net: Keep ignoring isolated cpuset change block: Protect against concurrent isolated cpuset change timers/migration: Prevent from lockdep false positive warning cpu: Provide lockdep check for CPU hotplug lock write-held cpuset: Provide lockdep check for cpuset lock held sched/isolation: Convert housekeeping cpumasks to rcu pointers cpuset: Update HK_TYPE_DOMAIN cpumask from cpuset sched/isolation: Flush memcg workqueues on cpuset isolated partition change sched/isolation: Flush vmstat workqueues on cpuset isolated partition change PCI: Flush PCI probe workqueue on cpuset isolated partition change cpuset: Propagate cpuset isolation update to workqueue through housekeeping cpuset: Propagate cpuset isolation update to timers through housekeeping timers/migration: Remove superfluous cpuset isolation test cpuset: Remove cpuset_cpu_is_isolated() sched/isolation: Remove HK_TYPE_TICK test from cpu_is_isolated() PCI: Remove superfluous HK_TYPE_WQ check kthread: Refine naming of affinity related fields kthread: Include unbound kthreads in the managed affinity list kthread: Include kthreadd to the managed affinity list kthread: Rely on HK_TYPE_DOMAIN for preferred affinity management sched: Switch the fallback task allowed cpumask to HK_TYPE_DOMAIN sched/arm64: Move fallback task cpumask to HK_TYPE_DOMAIN kthread: Honour kthreads preferred affinity after cpuset changes kthread: Comment on the purpose and placement of kthread_affine_node() call kthread: Document kthread_affine_preferred() doc: Add housekeeping documentation Documentation/arch/arm64/asymmetric-32bit.rst | 12 +- Documentation/core-api/housekeeping.rst | 111 ++++++++++++++++++ Documentation/core-api/index.rst | 1 + arch/arm64/kernel/cpufeature.c | 6 +- block/blk-mq.c | 6 +- drivers/base/cpu.c | 2 +- drivers/pci/pci-driver.c | 71 +++++++++--- include/linux/cpuhplock.h | 1 + include/linux/cpuset.h | 8 +- include/linux/kthread.h | 1 + include/linux/memcontrol.h | 4 + include/linux/mmu_context.h | 2 +- include/linux/pci.h | 3 + include/linux/percpu-rwsem.h | 1 + include/linux/sched/isolation.h | 16 ++- include/linux/vmstat.h | 2 + include/linux/workqueue.h | 2 +- init/Kconfig | 1 + kernel/cgroup/cpuset.c | 53 +++------ kernel/cpu.c | 42 +++---- kernel/kthread.c | 160 +++++++++++++++++--------- kernel/sched/isolation.c | 145 ++++++++++++++++++----- kernel/sched/sched.h | 4 + kernel/time/timer_migration.c | 25 ++-- kernel/workqueue.c | 17 +-- mm/memcontrol.c | 31 ++++- mm/vmstat.c | 15 ++- net/core/net-sysfs.c | 2 +- 28 files changed, 538 insertions(+), 206 deletions(-) create mode 100644 Documentation/core-api/housekeeping.rst