Re: [PATCH mlx5-next 09/10] net/rds: Handle ODP mr registration/unregistration
From: <hidden>
Date: 2020-01-15 21:53:36
Also in:
linux-rdma
On 1/15/20 4:43 AM, Leon Romanovsky wrote:
From: Hans Westgaard Ry <redacted> On-Demand-Paging MRs are registered using ib_reg_user_mr and unregistered with ib_dereg_mr. Signed-off-by: Hans Westgaard Ry <redacted> Signed-off-by: Leon Romanovsky <redacted> ---
Have already reviewed this patchset on internal list. Couple of minor nits below o.w patch looks good to me. Acked-by: Santosh Shilimkar <redacted> [...]
quoted hunk ↗ jump to hunk
diff --git a/net/rds/ib_rdma.c b/net/rds/ib_rdma.c index c8c1e3ae8d84..5a02b313ec50 100644 --- a/net/rds/ib_rdma.c +++ b/net/rds/ib_rdma.c@@ -37,8 +37,15 @@ #include "rds_single_path.h" #include "ib_mr.h" +#include "rds.h" struct workqueue_struct *rds_ib_mr_wq; +struct rds_ib_dereg_odp_mr { + struct work_struct work; + struct ib_mr *mr; +}; + +static void rds_ib_odp_mr_worker(struct work_struct *work); static struct rds_ib_device *rds_ib_get_device(__be32 ipaddr) {@@ -213,6 +220,8 @@ void rds_ib_sync_mr(void *trans_private, int direction) struct rds_ib_mr *ibmr = trans_private; struct rds_ib_device *rds_ibdev = ibmr->device; + if (ibmr->odp) + return;
Add a new line here.
switch (direction) {
case DMA_FROM_DEVICE:
ib_dma_sync_sg_for_cpu(rds_ibdev->dev, ibmr->sg,[...]
quoted hunk ↗ jump to hunk
diff --git a/net/rds/rdma.c b/net/rds/rdma.c index eb23c38ce2b3..3c6afdda709b 100644 --- a/net/rds/rdma.c +++ b/net/rds/rdma.c@@ -177,13 +177,14 @@ static int __rds_rdma_map(struct rds_sock *rs, struct rds_get_mr_args *args, struct rds_conn_path *cp) { struct rds_mr *mr = NULL, *found; + struct scatterlist *sg = NULL; unsigned int nr_pages; struct page **pages = NULL; - struct scatterlist *sg; void *trans_private; unsigned long flags; rds_rdma_cookie_t cookie; - unsigned int nents; + unsigned int nents = 0; + int need_odp = 0; long i; int ret;@@ -196,6 +197,20 @@ static int __rds_rdma_map(struct rds_sock *rs, struct rds_get_mr_args *args, ret = -EOPNOTSUPP; goto out; }
New line pls