From: Daniel Wagner <[email protected]>

The io_queue flag informs multiqueue device drivers where to place
hardware queues. Document this new flag in the isolcpus
command-line argument description.

Signed-off-by: Daniel Wagner <[email protected]>
Reviewed-by: Hannes Reinecke <[email protected]>
[atomlin: Refined io_queue kernel parameter documentation]
Signed-off-by: Aaron Tomlin <[email protected]>
---
 .../admin-guide/kernel-parameters.txt         | 30 ++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/Documentation/admin-guide/kernel-parameters.txt 
b/Documentation/admin-guide/kernel-parameters.txt
index cf3807641d89..e2d798351964 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -2810,7 +2810,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
@@ -2833,6 +2832,35 @@ Kernel parameters
                          housekeeping CPUs has no influence on those
                          queues.
 
+                       io_queue
+                         Applicable to managed IRQs only. Restrict
+                         multiqueue hardware queue allocation to online
+                         housekeeping CPUs. This guarantees that all
+                         managed hardware completion interrupts are routed
+                         exclusively to housekeeping cores, shielding
+                         isolated CPUs from I/O interruptions even if they
+                         initiated the request.
+
+                         The io_queue configuration takes precedence over
+                         managed_irq. When io_queue is used, managed_irq
+                         placement constraints have no effect.
+
+                         Note: Using io_queue restricts the number of
+                         allocated hardware queues to match the number of
+                         housekeeping CPUs. 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]
-- 
2.51.0


Reply via email to