[PATCH] nvme: write streams are used even when streams are disabled

Cassiano Campes
2019-09-17T17:14:46Z

Even when the streams flag at the nvme_core module is not set, the
nvme_assign_write_stream is called unnecessarily, and the write hint
is passed to the controller, thus resulting in a shadowed stream usage.

Although the user application may pass the write_hint to the device driver,
the user may have disabled the streams support by toggling the
/sys/module/nvme_core/parameters/streams flag.

Later, the user may want to enable the streams support to get some write
performance improvement, however the user will not notice any performance
difference because the write streams separation was already happening
although the streams flag was not set.

Signed-off-by: Cassiano Campes <cassianocampes@gmail.com>
---
drivers/nvme/host/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index d3d6b7bd6903..5a77aea0a58e 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -645,7 +645,7 @@ static inline blk_status_t nvme_setup_rw(struct nvme_ns *ns,
cmnd->rw.slba = cpu_to_le64(nvme_block_nr(ns, blk_rq_pos(req)));
cmnd->rw.length = cpu_to_le16((blk_rq_bytes(req) >> ns->lba_shift) - 1);

- if (req_op(req) == REQ_OP_WRITE && ctrl->nr_streams)
+ if (req_op(req) == REQ_OP_WRITE && ctrl->nr_streams && streams)
nvme_assign_write_stream(ctrl, req, &control, &dsmgmt);

if (ns->ms) {
--
2.17.1

_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org