[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