From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Aaron Tomlin <atomlin@atomlin.com>
Cc: axboe@kernel.dk, kbusch@kernel.org, hch@lst.de, sagi@grimberg.me,
mst@redhat.com, aacraid@microsemi.com,
James.Bottomley@hansenpartnership.com,
martin.petersen@oracle.com, liyihang9@h-partners.com,
kashyap.desai@broadcom.com, sumit.saxena@broadcom.com,
shivasharan.srikanteshwara@broadcom.com,
chandrakanth.patil@broadcom.com, sathya.prakash@broadcom.com,
sreekanth.reddy@broadcom.com,
suganath-prabu.subramani@broadcom.com, ranjan.kumar@broadcom.com,
jinpu.wang@cloud.ionos.com, tglx@kernel.org, mingo@redhat.com,
peterz@infradead.org, juri.lelli@redhat.com,
vincent.guittot@linaro.org, akpm@linux-foundation.org,
maz@kernel.org, ruanjinjie@huawei.com, yphbchou0911@gmail.com,
wagi@kernel.org, frederic@kernel.org, longman@redhat.com,
chenridong@huawei.com, hare@suse.de, kch@nvidia.com,
ming.lei@redhat.com, tom.leiming@gmail.com, 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-block@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v15 0/8] blk: honor isolcpus configuration
Date: Fri, 10 Jul 2026 17:21:59 +0200 [thread overview]
Message-ID: <20260710152159.Xl-dY-J6@linutronix.de> (raw)
In-Reply-To: <20260521232956.553287-1-atomlin@atomlin.com>
On 2026-05-21 19:29:48 [-0400], Aaron Tomlin wrote:
> Hi,
Hi,
> I have decided to drive this series forward on behalf of Daniel Wagner, the
> original author. The series has been rebased on v7.1-rc4-100-g8bc67e4db64a.
>
> This series introduces a new CPU isolation feature, "isolcpus=io_queue",
> designed to protect isolated cores from the disruptive hardware interrupts
> generated by high-performance multi-queue devices.
>
> When enabled, it fundamentally alters how the generic IRQ subsystem and the
> block layer (blk-mq) map hardware queues:
>
> 1. Restricted IRQ Affinity: Managed hardware interrupts are strictly
> confined to online housekeeping CPUs.
>
> 2. Transparent I/O Submission: Applications running on isolated CPUs
> can still seamlessly submit I/O requests; however, the resulting
> hardware completion interrupts are safely routed to a designated
> housekeeping CPU.
>
> 3. Topology-Aware Queue Allocation: The generic CPU-to-hardware-queue
> mapping logic is extended to distribute hardware contexts evenly
> among the available housekeeping CPUs, preventing MSI-X vector
> exhaustion while maintaining optimal cache locality where possible.
>
> To prevent I/O stalls, the block layer is additionally hardened to reject
> hot-plug requests that attempt to offline a housekeeping CPU if it is the
> last remaining CPU actively serving an online isolated core.
>
> The complex "top-down" mask plumbing introduced in v12, which modified
> struct irq_affinity and expanded block layer APIs, has been abandoned. It
> is replaced by a centralised approach: direct isolation querying via
> housekeeping_cpumask(HK_TYPE_IO_QUEUE) within the genirq/affinity
> subsystem. This architectural simplification successfully decouples core
> changes from driver-specific implementations.
>
> Please let me know your thoughts.
I think I asked this or wanted to: Why not mage managed_irqs consider
this? Or is there a case where those two options want a different thing?
With managed_irqs you specify a mask but this is may not be respected if
you have more IRQs than you specify. This means the IRQs will still be
routed to isolated CPUs.
This option is intended to avoid any interrupts on isolated CPUs.
Wouldn't it be possible to allow managed_irqs to restrict a device to
two CPUs only and use two queues only instead of the available 64 or do
I miss something fundamental why those two need to be separate?
Sebastian
prev parent reply other threads:[~2026-07-10 15:22 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-21 23:29 [PATCH v15 0/8] blk: honor isolcpus configuration Aaron Tomlin
2026-05-21 23:29 ` [PATCH v15 1/8] scsi: aacraid: use block layer helpers to calculate num of queues Aaron Tomlin
2026-05-21 23:29 ` [PATCH v15 2/8] lib/group_cpus: remove dead !SMP code Aaron Tomlin
2026-05-21 23:29 ` [PATCH v15 3/8] lib/group_cpus: Add group_mask_cpus_evenly() Aaron Tomlin
2026-05-21 23:29 ` [PATCH v15 4/8] isolation: Introduce io_queue isolcpus type Aaron Tomlin
2026-05-21 23:29 ` [PATCH v15 5/8] blk-mq: use hk cpus only when isolcpus=io_queue is enabled Aaron Tomlin
2026-05-21 23:29 ` [PATCH v15 6/8] blk-mq: prevent offlining hk CPUs with associated online isolated CPUs Aaron Tomlin
2026-05-21 23:29 ` [PATCH v15 7/8] genirq/affinity: Restrict managed IRQ affinity to housekeeping CPUs Aaron Tomlin
2026-05-21 23:29 ` [PATCH v15 8/8] docs: add io_queue flag to isolcpus Aaron Tomlin
2026-05-26 16:05 ` [PATCH v15 0/8] blk: honor isolcpus configuration Daniel Wagner
2026-05-26 22:02 ` Aaron Tomlin
2026-06-17 11:01 ` Aaron Tomlin
2026-07-10 15:14 ` Sebastian Andrzej Siewior
2026-07-10 15:21 ` Sebastian Andrzej Siewior [this message]
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=20260710152159.Xl-dY-J6@linutronix.de \
--to=bigeasy@linutronix.de \
--cc=James.Bottomley@hansenpartnership.com \
--cc=aacraid@microsemi.com \
--cc=akpm@linux-foundation.org \
--cc=atomlin@atomlin.com \
--cc=axboe@kernel.dk \
--cc=chandrakanth.patil@broadcom.com \
--cc=chenridong@huawei.com \
--cc=chjohnst@gmail.com \
--cc=frederic@kernel.org \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=jinpu.wang@cloud.ionos.com \
--cc=juri.lelli@redhat.com \
--cc=kashyap.desai@broadcom.com \
--cc=kbusch@kernel.org \
--cc=kch@nvidia.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=liyihang9@h-partners.com \
--cc=longman@redhat.com \
--cc=marco.crivellari@suse.com \
--cc=martin.petersen@oracle.com \
--cc=maz@kernel.org \
--cc=ming.lei@redhat.com \
--cc=mingo@redhat.com \
--cc=mproche@gmail.com \
--cc=mst@redhat.com \
--cc=neelx@suse.com \
--cc=nick.lange@gmail.com \
--cc=peterz@infradead.org \
--cc=ranjan.kumar@broadcom.com \
--cc=rishil1999@outlook.com \
--cc=ruanjinjie@huawei.com \
--cc=sagi@grimberg.me \
--cc=sathya.prakash@broadcom.com \
--cc=sean@ashe.io \
--cc=shivasharan.srikanteshwara@broadcom.com \
--cc=sreekanth.reddy@broadcom.com \
--cc=steve@abita.co \
--cc=suganath-prabu.subramani@broadcom.com \
--cc=sumit.saxena@broadcom.com \
--cc=tglx@kernel.org \
--cc=tom.leiming@gmail.com \
--cc=vincent.guittot@linaro.org \
--cc=wagi@kernel.org \
--cc=yphbchou0911@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox