[LSF/MM/BPF TOPIC] NVMe Controller Data Queue (CDQ)
Chaitanya Kulkarni
chaitanyak at nvidia.com
Thu Feb 19 11:26:35 PST 2026
On 2/18/26 04:04, Joel Granados wrote:
> Hello all.
>
> I would like to propose Controller Data Queue and how it fits into the NVMe
> driver.
>
> I sent out an RFC back in July [1] describing the first version of a Controller
> Data Queue implementation in the kernel. Technical feedback at that point
> included:
> 1. CDQs are useful **only** for tracking LBAs during live migration (LM)
> 2. LM needed to be in a "proper" state for CDQs to be useful in the linux
> kernel
> 3. CDQs should be managed like any other queue and not through an ioctl
>
> Since then, there have been six additional versions [2] that included things
> like exploring different ways of allocating memory, interactions with IOMMU, use
> of the tail pointer trigger and how to involve (or not) user space. I have been
> reluctant to send out a second RFC as the implementations are still heavy on the
> user space side.
>
> # Discussion
>
> Here are some points that I think would be interesting:
> 1. Should there be special considerations for the fact that CDQs don't really
> have a submission queue? Specifically: How does the current NVMe queue
> implementation need to change in order to include the fact that there are no
> submissions for CDQs? Do they need to change at all?
>
> 2. Should the memory backing up the CDQ be segregated from the one used for
> "regular" queues? This is relevant as CDQs might live longer and be larger
> (proportional to the device being LM'ed) than "regular" queues.
>
> 3. Live Migration is the encompassing subject and it would be interesting to
> note if we can already define requirements for the CDQ based on existing LM
> POCs (if they exist) or LM implementation ideas.
>
> This proposal came out shorter than I expected, but I believe its a good
> opportunity to address the question of how LM/CDQ will look like in the
> Linux Kernel.
>
> Best Regards
>
> Joel
>
> [1] https://lore.kerne.org/20250714-jag-cdq-v1-0-01e027d256d5@kernel.org
> [2] https://github.com/SamsungDS/linux/tree/sam-cdq-v{2,3,4,5,6,7}
>
What is your usecase for this ?
-ck
More information about the Linux-nvme
mailing list