Re: [PATCH RFC 0/8] nvme: Add Controller Data Queue to the nvme driver
From: Joel Granados
Date: Fri Jul 18 2025 - 07:33:59 EST
On Mon, Jul 14, 2025 at 03:02:31PM +0200, Christoph Hellwig wrote:
> On Mon, Jul 14, 2025 at 11:15:31AM +0200, Joel Granados wrote:
> > Motivation
> > ==========
> > The main motivation is to enable Controller Data Queues as described in
> > the 2.2 revision of the NVME base specification. This series places the
> > kernel as an intermediary between the NVME controller producing CDQ
> > entries and the user space process consuming them. It is general enough
> > to encompass different use cases that require controller initiated
> > communication delivered outside the regular I/O traffic streams (like
> > LBA tracking for example).
Thx for the feedback. Much appreciated.
>
> That's rather blurbish. The only use case for CDQs in NVMe 2.2 is
> tracking of dirty LBAs for live migration, and the live migration
Yes, that is my understanding of nvme 2.2 as well.
> feature in 2.2 is completely broken because the hyperscalers wanted
> to win a point. So for CDQs to be useful in Linux we'll need the
> proper live migration still under heavy development. With that I'd
Do you mean in the specification body or patch series in the mailing
lists?
> very much expect the kernel to manage the CDQs just like any other
> queue, and not a random user ioctl.
This is a great segue to a question: If CDQ is like any other queue,
what is the best way of handling the lack of CDQ submission queues?
Something like snooping all submissions for these CDQs and triggering a
CDQ consume on every submission?
I went with the ioctl as the faster way to get it to work; I might
explore what having it as just another queue would look like.
> So what would be the use case for a user controlled CDQ?
Do you mean a hypothetical list besides LM in NVME 2.2?
Best
--
Joel Granados
Attachment:
signature.asc
Description: PGP signature