Re: [PATCH v15 8/8] docs: add io_queue flag to isolcpus

From: Sebastian Andrzej Siewior

Date: Wed Jul 15 2026 - 06:31:21 EST


On 2026-05-21 19:29:56 [-0400], Aaron Tomlin wrote:
> From: Daniel Wagner <wagi@xxxxxxxxxx>
>
> 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 <wagi@xxxxxxxxxx>
> Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
> [atomlin:
> - Refined io_queue kernel parameter documentation
> - Removed an inaccurate claim in the documentation stating
> that io_queue takes precedence over managed_irq]
> Signed-off-by: Aaron Tomlin <atomlin@xxxxxxxxxxx>

>From high level, this looks like managed_irq with the exception that you
can limit the number of assigned interrupts while managed_irq is best
effort. Is this true or do I oversimplify something?

If so, can this be integrated?

> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> index 4d0f545fb3ec..fb828bb60b9e 100644
> --- a/Documentation/admin-guide/kernel-parameters.txt
> +++ b/Documentation/admin-guide/kernel-parameters.txt
> @@ -2815,6 +2814,31 @@ 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.
> +
> + 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.

This is named io_queue but it does affect I/O in general unless the
driver uses managed_irqs. This may or may not be clear to the user.
So the io_queue might not be the perfect name given that affects alles
devices in the system. We do have just I/O devices using it right now.

I think this still deserves an explanation in
Documentation/core-api/irq/managed_irq.rst like how to use it, what is
the expected outcome and how does it interact with the managed_irq
argument. Does it make sense to use both, is it exclusive or, what would
be the use case for both arguments.

> The format of <cpu-list> is described above.
>
> iucv= [HW,NET]
> --
> 2.51.0
>