From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============5686384382177349427==" MIME-Version: 1.0 From: Walker, Benjamin Subject: Re: [SPDK] error while submitting readv cmd Date: Tue, 02 Aug 2016 15:56:05 +0000 Message-ID: <1470153363.2387.240.camel@intel.com> In-Reply-To: CABSNBDE4gvcUfyGY1o-0CUNTTmp=w9fwy_vUukX+RwPHLU72AA@mail.gmail.com List-ID: To: spdk@lists.01.org --===============5686384382177349427== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable On Mon, 2016-08-01 at 16:50 -0700, txcy uio wrote: > Hello, > = > While submitting a readv command (spdk_nvme_ns_cmd_readv) I see the follo= wing error: > = > READ sqid:3 cid:127 nsid:1 lba:100 len:64 > INVALID_FIELD (00/02) sqid:3 cid:127 cdw0:0 sqhd:0000 p:0 m:0 dnr:1 > = > = > Based on this error what can I infer about the command that went wrong? The SPDK NVMe driver is zero-copy, meaning we program the hardware to trans= fer data directly from the buffers you specify. That's why all of the buffers need to be allocated= from pinned memory (in practice, that usually means they need to be allocated using rte_malloc fro= m DPDK). NVMe devices also have physical alignment restrictions. For instance, version 1.0 of the= specification requires us to program the hardware using a "physical resource page list" (PRP list)= , which consists of a list of 4k physical memory pages. The first page does not have to be 4k ali= gned, but all others do, and all but the first and last page must be 4k in length. Version 1.2 of th= e NVMe specification optionally allows fully flexible scatter gather lists, but almost no commer= cially available devices support scatter gather lists yet. spdk_nvme_ns_cmd_readv is our interface for using the NVMe 1.2 scatter gath= er list capabilities. If your device doesn't support that, it's going to fa= il with an error like you are seeing. I now see that the purpose of spdk_nv= me_ns_cmd_readv isn't clearly specified in the documentation (http://www.sp= dk.io/spdk/doc/nvme_8h.html#acb47ce7de6b6e963ec9fb8de261466ae) and if you a= ren't intimately familiar with the NVMe specification I can definitely see = how you wouldn't realize that scatter gather lists require special hardware= support. The documentation needs to be updated. > = > --Tyc > = > _______________________________________________ > SPDK mailing list > SPDK(a)lists.01.org > https://lists.01.org/mailman/listinfo/spdk --===============5686384382177349427==--