RDMA/rdmavt: Decouple QP and SGE lists allocations
authorLeon Romanovsky <leonro@nvidia.com>
Fri, 23 Jul 2021 11:39:49 +0000 (14:39 +0300)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 3 Aug 2021 16:44:27 +0000 (13:44 -0300)
commit44da3730e046a784d088157175d9418ba60661fc
treed215dc33adcd0165ab149c74d20af01427f7037a
parent0dc0da15ed7d1f50ec3ef0cdbb7f2975abefec1f
RDMA/rdmavt: Decouple QP and SGE lists allocations

The rdmavt QP has fields that are both needed for the control and data
path. Such mixed declaration caused to the very specific allocation flow
with kzalloc_node and SGE list embedded into the struct rvt_qp.

This patch separates QP creation to two: regular memory allocation for the
control path and specific code for the SGE list, while the access to the
later is performed through derefenced pointer.

Such pointer and its context are expected to be in the cache, so
performance difference is expected to be negligible, if any exists.

Link: https://lore.kernel.org/r/f66c1e20ccefba0db3c69c58ca9c897f062b4d1c.1627040189.git.leonro@nvidia.com
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/sw/rdmavt/qp.c
include/rdma/rdmavt_qp.h