[PATCH][qemu-nvme] Enhancements to the CMB feature for NVM Express 1.2 devices.

Stephen Bates Stephen.Bates at pmcs.com
Wed Dec 17 11:54:06 PST 2014


Keith

I will v2 this patch with RDS and WDS cleared for now.

Longer term I can see a use case for WDS (and RDS) where a remote host could write data to the CMB (perhaps via RDMA) and then use a SQ to submit a command to push that CMB data to NVM.

Cheers

Stephen Bates, PhD
Technical Director, CSTO
PMC-Sierra
Cell: +1 403 609 1784
Twitter: @stepbates

-----Original Message-----
From: Keith Busch [mailto:keith.busch at intel.com] 
Sent: Wednesday, December 17, 2014 9:25 AM
To: Stephen Bates
Cc: Keith Busch; linux-nvme at lists.infradead.org; Matias Bjørling
Subject: Re: [PATCH][qemu-nvme] Enhancements to the CMB feature for NVM Express 1.2 devices.

On Tue, 16 Dec 2014, Stephen Bates wrote:
> +        /* If CMB is requested it is setup here. Currently n->cmb
> +         * determines size in MB. All other properties are hard-coded
> +         * (for now) to:
> +         * CMBSZ  = SQS=1, CQS=1, LISTS=1, RDS=1, WDS=1, SZU=1MB
> +         * CMBLOC = BIR=2, OFST=0
> +         */
> +
> +        n->bar.cmbloc = 2;
> +        n->bar.cmbsz = 0x1f | (0x2<<8) | (n->cmb << 12);

If you're going to allow cmb read/write data supported, you need to make sure it works. For that I think you need to change read/write action to use blk_aio_readv/writev instead of the dma helper if the PRPs point in the CMB. That was too much work and I did't see that feature as particularly useful for Linux, so I skipped it.



More information about the Linux-nvme mailing list