From: Aaron Tomlin <atomlin@atomlin.com>
To: axboe@kernel.dk, tglx@kernel.org, aacraid@microsemi.com,
James.Bottomley@HansenPartnership.com, mkp@kernel.org,
frederic@kernel.org, bigeasy@linutronix.de
Cc: atomlin@atomlin.com, ionut.nechita@windriver.com, corbet@lwn.net,
vincent.guittot@linaro.org, mingo@redhat.com,
peterz@infradead.org, radu@rendec.net, akpm@linux-foundation.org,
steve@abita.co, sean@ashe.io, chjohnst@gmail.com, neelx@suse.com,
mproche@gmail.com, nick.lange@gmail.com,
marco.crivellari@suse.com, rishil1999@outlook.com,
linux-doc@vger.kernel.org, linux-block@vger.kernel.org,
linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v16 9/9] docs: add managed_irq_strict flag to isolcpus
Date: Thu, 10 Sep 2026 12:42:37 -0400 [thread overview]
Message-ID: <20260910164237.500196-10-atomlin@atomlin.com> (raw)
In-Reply-To: <20260910164237.500196-1-atomlin@atomlin.com>
From: Daniel Wagner <wagi@kernel.org>
The managed_irq_strict flag informs multiqueue device drivers where to
place hardware queues and managed interrupt vectors. Document this new
flag in the isolcpus command-line argument description, describe its
relationship and precedence with respect to the legacy managed_irq flag,
and document HK_TYPE_MANAGED_IRQ_STRICT in the core housekeeping guide.
Signed-off-by: Daniel Wagner <wagi@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Co-developed-by: Aaron Tomlin <atomlin@atomlin.com>
Signed-off-by: Aaron Tomlin <atomlin@atomlin.com>
---
.../admin-guide/kernel-parameters.txt | 37 ++++++++++++++++++-
Documentation/core-api/housekeeping.rst | 6 ++-
2 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 68647ff4bdd2..eb608e5139a6 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -2822,7 +2822,6 @@ Kernel parameters
"number of CPUs in system - 1".
managed_irq
-
Isolate from being targeted by managed interrupts
which have an interrupt mask containing isolated
CPUs. The affinity of managed interrupts is
@@ -2845,6 +2844,42 @@ Kernel parameters
housekeeping CPUs has no influence on those
queues.
+ managed_irq_strict
+ Strictly restrict multiqueue hardware queue
+ allocation and managed interrupt affinity to
+ housekeeping CPUs. Unlike the best-effort
+ managed_irq flag, this option guarantees that
+ managed interrupts and multiqueue block device
+ queues are never created for or mapped to isolated
+ CPUs.
+
+ In the block layer (blk-mq), device queue allocation
+ and CPU-to-queue mappings are restricted to
+ housekeeping CPUs. For devices using managed
+ interrupts, hardware completion interrupts are routed
+ exclusively to housekeeping cores, shielding isolated
+ CPUs from I/O interruptions even if they initiated the
+ request.
+
+ If both managed_irq and managed_irq_strict are
+ specified, managed_irq_strict takes precedence.
+
+ Note: Using managed_irq_strict restricts the number
+ of allocated hardware queues to match the number of
+ housekeeping CPUs for single-set drivers. This
+ prevents MSI-X vector exhaustion and forces isolated
+ CPUs to share submission queues.
+
+ Note: Offlining housekeeping CPUs which serve
+ isolated CPUs will fail. The isolated CPUs must
+ be offlined before offlining the housekeeping
+ CPUs.
+
+ Note: When I/O is submitted by an application on
+ an isolated CPU, the hardware completion
+ interrupt is handled entirely by a housekeeping
+ CPU.
+
The format of <cpu-list> is described above.
iucv= [HW,NET]
diff --git a/Documentation/core-api/housekeeping.rst b/Documentation/core-api/housekeeping.rst
index ccb0a88b9cb3..6d08c71e6c0e 100644
--- a/Documentation/core-api/housekeeping.rst
+++ b/Documentation/core-api/housekeeping.rst
@@ -23,7 +23,7 @@ CPU. It is simply a CPU that can execute housekeeping work. There must
always be at least one online housekeeping CPU at any time. The CPUs that
are not isolated are automatically assigned as housekeeping.
-Housekeeping is currently divided in four features described
+Housekeeping is currently divided in five features described
by the ``enum hk_type type``:
1. HK_TYPE_DOMAIN matches the work moved away by scheduler domain
@@ -44,6 +44,10 @@ by the ``enum hk_type type``:
to HK_TYPE_DOMAIN except it ignores the isolation performed by
cpusets.
+5. HK_TYPE_MANAGED_IRQ_STRICT matches the multiqueue block devices and
+ managed IRQs strictly restricted to housekeeping CPUs through
+ ``isolcpus=managed_irq_strict``.
+
Housekeeping cpumasks
=================================
--
2.55.0
next prev parent reply other threads:[~2026-09-10 16:43 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-10 16:42 [PATCH v16 0/9] blk: honor isolcpus configuration Aaron Tomlin
2026-09-10 16:42 ` [PATCH v16 1/9] scsi: aacraid: use block layer helpers to calculate num of queues Aaron Tomlin
2026-09-10 16:42 ` [PATCH v16 2/9] lib/group_cpus: remove dead !SMP code Aaron Tomlin
2026-09-10 16:42 ` [PATCH v16 3/9] lib/group_cpus: Add group_mask_cpus_evenly() Aaron Tomlin
2026-09-10 16:42 ` [PATCH v16 4/9] sched/isolation: Prevent out-of-bounds read in isolcpus= boot parameter parser Aaron Tomlin
2026-09-10 16:42 ` [PATCH v16 5/9] isolation: Introduce managed_irq_strict isolcpus type Aaron Tomlin
2026-09-10 16:42 ` [PATCH v16 6/9] blk-mq: use hk cpus only when isolcpus=managed_irq_strict is enabled Aaron Tomlin
2026-09-10 16:42 ` [PATCH v16 7/9] blk-mq: prevent offlining hk CPUs with associated online isolated CPUs Aaron Tomlin
2026-09-10 16:42 ` [PATCH v16 8/9] genirq/affinity: Restrict managed IRQ affinity to housekeeping CPUs Aaron Tomlin
2026-09-10 16:42 ` Aaron Tomlin [this message]
2026-09-10 18:26 ` [PATCH v16 0/9] blk: honor isolcpus configuration Aaron Tomlin
2026-09-17 15:44 ` Ionut Nechita (Wind River)
2026-09-21 13:53 ` Ionut Nechita
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260910164237.500196-10-atomlin@atomlin.com \
--to=atomlin@atomlin.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=aacraid@microsemi.com \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=bigeasy@linutronix.de \
--cc=chjohnst@gmail.com \
--cc=corbet@lwn.net \
--cc=frederic@kernel.org \
--cc=ionut.nechita@windriver.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=marco.crivellari@suse.com \
--cc=mingo@redhat.com \
--cc=mkp@kernel.org \
--cc=mproche@gmail.com \
--cc=neelx@suse.com \
--cc=nick.lange@gmail.com \
--cc=peterz@infradead.org \
--cc=radu@rendec.net \
--cc=rishil1999@outlook.com \
--cc=sean@ashe.io \
--cc=steve@abita.co \
--cc=tglx@kernel.org \
--cc=vincent.guittot@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.