diff options
author | Sagi Grimberg <sagi@grimberg.me> | 2018-11-19 14:11:12 -0800 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2018-12-07 22:26:57 -0700 |
commit | e6a622fd6d66b83779357e3400f487fc159a7d83 (patch) | |
tree | 23c128b4f918466bea9dc3c7a2669ea9916ea849 /drivers/nvme/target/nvmet.h | |
parent | 6e2e312ea7ff73acfafaa5c9851e151e9483c761 (diff) | |
download | blackbird-op-linux-e6a622fd6d66b83779357e3400f487fc159a7d83.tar.gz blackbird-op-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 'drivers/nvme/target/nvmet.h')
-rw-r--r-- | drivers/nvme/target/nvmet.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/nvme/target/nvmet.h b/drivers/nvme/target/nvmet.h index 03988fe9d915..547108c41ce9 100644 --- a/drivers/nvme/target/nvmet.h +++ b/drivers/nvme/target/nvmet.h @@ -106,6 +106,7 @@ struct nvmet_sq { u16 qid; u16 size; u32 sqhd; + bool sqhd_disabled; struct completion free_done; struct completion confirm_done; }; |