Re: [PATCH v2] docs: kernel-parameters: document scope of irqaffinity= parameter
From: Jonathan Corbet
Date: Sun May 03 2026 - 11:16:59 EST
Aaron Tomlin <atomlin@xxxxxxxxxxx> writes:
> There is a common misconception that the "irqaffinity=" boot parameter
> acts as a global override for all hardware interrupts. In reality, it
> only sets the irq_default_affinity mask, which is explicitly ignored
> by managed interrupts (e.g., modern multiqueue storage controllers).
>
> This patch updates kernel-parameters.txt to document this limitation,
> directs users to "isolcpus=managed_irq" and
> Documentation/core-api/irq/managed_irq.rst for further details.
> Additionally, it updates managed_irq.rst to provide a debugfs example
> demonstrating the IRQD_AFFINITY_MANAGED state flag.
>
> Signed-off-by: Aaron Tomlin <atomlin@xxxxxxxxxxx>
> ---
> Changes in v1 [1]:
> - Provided an example of a managed IRQ using CONFIG_GENERIC_IRQ_DEBUGFS
> - Referenced Documentation/core-api/irq/managed_irq.rst
>
> [1]: https://lore.kernel.org/lkml/20260414200245.1153919-1-atomlin@xxxxxxxxxxx/
> ---
> .../admin-guide/kernel-parameters.txt | 11 ++++
> Documentation/core-api/irq/managed_irq.rst | 53 ++++++++++++++++++-
> 2 files changed, 62 insertions(+), 2 deletions(-)
[...]
> diff --git a/Documentation/core-api/irq/managed_irq.rst b/Documentation/core-api/irq/managed_irq.rst
> index 05e295f3c289..8e973a7d1bd1 100644
> --- a/Documentation/core-api/irq/managed_irq.rst
> +++ b/Documentation/core-api/irq/managed_irq.rst
> @@ -80,9 +80,58 @@ The following examples assume a system with 8 CPUs.
> /proc/irq/48/effective_affinity_list:0
> /proc/irq/48/smp_affinity_list:7
>
> - This can be verified via the debugfs interface
> - (/sys/kernel/debug/irq/irqs/48). The dstate field will include
> + If the Linux kernel was built with Kconfig CONFIG_GENERIC_IRQ_DEBUGFS
> + enabled, this can be verified via the debugfs interface (e.g.,
> + /sys/kernel/debug/irq/irqs/48). The dstate field will include
> IRQD_IRQ_DISABLED, IRQD_IRQ_MASKED and IRQD_MANAGED_SHUTDOWN.
> + A managed IRQ will also include IRQD_AFFINITY_MANAGED. For example:
> +
> + # cat /sys/kernel/debug/irq/irqs/87
> + handler: handle_edge_irq
> + device: 0000:41:00.0
This will not render the way you seem to expect, it should be a literal
block. Please do build the docs and look at the results before sending
documentation patches.
Thanks,
jon