OSDN Git Service

nvme-rdma: Use mr pool
authorIsrael Rukshin <israelr@mellanox.com>
Sun, 26 Nov 2017 10:40:55 +0000 (10:40 +0000)
committerChristoph Hellwig <hch@lst.de>
Sun, 26 Nov 2017 14:33:32 +0000 (15:33 +0100)
commitf41725bbe16b0773302c0cc7dc2e89f54828712d
tree75b1568b766b158c5d4395dc1f3e60826dfab86a
parent3ef0279bb0031f67537bd8972899a6a23d3064d7
nvme-rdma: Use mr pool

Currently, blk_mq_tagset_iter() iterate over initial hctx tags only.  If
an I/O scheduler is used, it doesn't iterate the hctx scheduler tags and
the static request aren't been updated. For example, while using NVMe
over Fabrics RDMA host, this cause us not to reinit the scheduler
requests and thus not re-register all the memory regions during the
tagset re-initialization in the reconnect flow.

This may lead to a memory registration error:

  "MEMREG for CQE 0xffff88044c14dce8 failed with status memory management operation error (6)"

With this commit we don't need to reinit the requests, and thus fix this
failure.

Signed-off-by: Israel Rukshin <israelr@mellanox.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Max Gurtovoy <maxg@mellanox.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/rdma.c