summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSagi Grimberg <sagi@grimberg.me>2018-11-19 23:11:12 +0100
committerJens Axboe <axboe@kernel.dk>2018-12-08 06:26:57 +0100
commite6a622fd6d66b83779357e3400f487fc159a7d83 (patch)
tree23c128b4f918466bea9dc3c7a2669ea9916ea849 /include
parentnvmet-fc: remove the IN_ISR deferred scheduling options (diff)
downloadlinux-e6a622fd6d66b83779357e3400f487fc159a7d83.tar.xz
linux-e6a622fd6d66b83779357e3400f487fc159a7d83.zip
nvmet: support fabrics sq flow control
Technical proposal 8005 "fabrics SQ flow control" introduces a mode where a host and controller agree to omit sq_head pointer updates when sending nvme completions. In case the host indicated desire to operate in this mode (connect attribute) the controller will return back a connect completion with sq_head value of 0xffff as indication that it will omit sq_head pointer updates. This mode saves us an atomic update in the I/O path. Reviewed-by: Hannes Reinecke <hare@suse.com> [hch: suggested better implementation] Signed-off-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include')
-rw-r--r--include/linux/nvme.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/nvme.h b/include/linux/nvme.h
index 77d320d32ee5..e7d731776f62 100644
--- a/include/linux/nvme.h
+++ b/include/linux/nvme.h
@@ -1044,6 +1044,10 @@ struct nvmf_disc_rsp_page_hdr {
struct nvmf_disc_rsp_page_entry entries[0];
};
+enum {
+ NVME_CONNECT_DISABLE_SQFLOW = (1 << 2),
+};
+
struct nvmf_connect_command {
__u8 opcode;
__u8 resv1;