Spdk/lib
Daniel Verkamp 59fc5ba613 nvme: fix extended LBA block size calculations
For namespaces with end-to-end protection information, metadata size
of exactly 8 bytes, and extended LBA configured, the NVMe driver would
calculate the size of the data block incorrectly.  The NVMe spec has a
special provision for this specific case (8-byte metadata only) and
PRACT = 1 that requires that the host does not send the metadata as part
of the host memory buffer.

To fix this, clean up the calculation of the per-block data transfer
size by adding a new extended_lba_size field in the namespace, which
represents the total size of data to be transferred per block based on
the namespace's configured metadata size and whether it transfers
metadata as part of the data buffer.  Then add the special case for
PRACT = 1 and PI configured and extended LBA in the R/W helper
functions.

Change-Id: I0b383a58c773cac06e6c018858b57129064c6059
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-02-10 10:24:26 -07:00
..
bdev bdev/split: pass correct bdev to base_bdev functions 2017-02-03 15:15:07 -07:00
conf conf: move structures out of public API header 2016-11-16 10:33:16 -07:00
copy event: remove 'complete' parameter from poller_register 2017-01-05 11:57:18 -07:00
cunit eofnl: check for extra trailing newlines 2016-10-11 13:30:33 -07:00
env_dpdk env/vtophys: expand vtophys map value to 64 bits 2017-02-07 15:13:22 -07:00
event event: call MP/SC ring functions explicitly 2017-01-30 15:01:08 -07:00
ioat util: move common helper functions to util.h 2017-02-10 09:38:52 -07:00
iscsi iscsi: increment the correct lcore's g_num_connections in FFP transition 2017-01-12 10:15:05 -07:00
json json/parse: rewrite and simplify number parsing 2017-01-13 13:18:50 -07:00
jsonrpc jsonrpc_server: allow user to specify socket type 2016-12-15 08:06:33 -07:00
log log: define prioritynames[] (#102) 2017-01-23 16:07:29 -07:00
net event.h: split non-public API into spdk_internal 2017-01-05 11:57:18 -07:00
nvme nvme: fix extended LBA block size calculations 2017-02-10 10:24:26 -07:00
nvmf util: move common helper functions to util.h 2017-02-10 09:38:52 -07:00
rpc event: remove spdk_event_allocate() next parameter 2017-01-05 11:57:18 -07:00
scsi scsi: fix the scsi read write direction issue. 2017-01-23 16:12:27 -07:00
trace Replace rte_get_tsc calls with spdk_get_ticks 2016-10-11 13:34:09 -07:00
util util: move common helper functions to util.h 2017-02-10 09:38:52 -07:00
Makefile env: rename default implementation to env_dpdk 2016-11-14 08:48:20 -07:00