Spdk/module/bdev/nvme
Jim Harris 3faf457f56 bdev/nvme: do not use DSM to emulate write zeroes
We cannot rely on DSM/DEALLOCATE as a write zeroes
alternative, even if DLFEAT reports that deallocated
blocks will be read as all zeroes.  DEALLOCATE is
advisory, meaning that blocks may not actually be
deallocated.  In cases where they are not deallocated,
they will not be read back later as zeroes.

QEMU 6.0 started reporting DLFEAT as returning zeroes
for deallocated blocks but for some of our write
zeroes tests, blocks aren't actually deallocated.

We may be able to add quirks in the future if we know
that a controller reliably deallocates blocks, but
for now we need to revert this completely.

Note that since bdev/nvme module now does not support
write zeroes in any cases, we need to disable the
write zeroes call in the unit tests.

Fixes issue #1932.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I79f0673774b621a9ffcc46891728cc7719e34cdb
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7723
Community-CI: Broadcom CI
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2021-05-07 11:32:23 +00:00
..
bdev_nvme_cuse_rpc.c lib/jsonrpc: Add a new API to send response for writing bool result. 2020-11-16 15:08:47 +00:00
bdev_nvme_rpc.c nvme/pcie: Add statistics per poll group 2021-04-13 21:30:52 +00:00
bdev_nvme.c bdev/nvme: do not use DSM to emulate write zeroes 2021-05-07 11:32:23 +00:00
bdev_nvme.h bdev/nvme: Merge bdev_nvme_remove_trid() into bdev_nvme_delete() 2021-03-12 08:20:46 +00:00
bdev_ocssd_rpc.c bdev/ocssd: Remove range parameter from bdev_ocssd_create RPC 2021-02-19 11:28:53 +00:00
bdev_ocssd.c bdev/nvme: Remove nvme_ns->ref and use nvme_ns->populated and nvme_ns->bdev instead 2021-04-08 16:10:26 +00:00
bdev_ocssd.h bdev/ocssd: Remove range from struct ocssd_bdev 2021-02-24 13:01:44 +00:00
common.c bdev/nvme: Factor out deleting nvme_bdev_ctrlr into a helper function 2021-04-08 16:10:26 +00:00
common.h bdev/nvme: Factor out getting admin path into a helper function 2021-04-12 09:51:03 +00:00
Makefile so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nvme_rpc.c bdev/nvme: Fix the RPC bdev_nvme_send_cmd to pass the registered io_device, nvme_bdev_ctrlr, correctly to get io_channel 2021-03-18 14:41:13 +00:00
vbdev_opal_rpc.c lib/jsonrpc: Add a new API to send response for writing bool result. 2020-11-16 15:08:47 +00:00
vbdev_opal.c bdev/nvme: Inline nvme_bdev_ns_to_bdev() and remove it 2021-04-08 16:10:26 +00:00
vbdev_opal.h module/bdev_nvme: remove spdk prefix from static/internal functions. 2020-05-15 07:58:03 +00:00