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

Keith Busch keith.busch at intel.com
Wed Dec 17 08:25:15 PST 2014


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