Skip to content

Commit b2dfc67

Browse files
Hans Westgaard RyLeon Romanovsky
authored andcommitted
net/rds: Use prefetch for On-Demand-Paging MR
Try prefetching pages when using On-Demand-Paging MR using ib_advise_mr. Signed-off-by: Hans Westgaard Ry <[email protected]> Acked-by: Santosh Shilimkar <[email protected]> Signed-off-by: Leon Romanovsky <[email protected]>
1 parent 2eafa17 commit b2dfc67

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

net/rds/ib_rdma.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -575,6 +575,7 @@ void *rds_ib_get_mr(struct scatterlist *sg, unsigned long nents,
575575
(IB_ACCESS_LOCAL_WRITE | IB_ACCESS_REMOTE_READ |
576576
IB_ACCESS_REMOTE_WRITE | IB_ACCESS_REMOTE_ATOMIC |
577577
IB_ACCESS_ON_DEMAND);
578+
struct ib_sge sge = {};
578579
struct ib_mr *ib_mr;
579580

580581
if (!rds_ibdev->odp_capable) {
@@ -602,6 +603,14 @@ void *rds_ib_get_mr(struct scatterlist *sg, unsigned long nents,
602603
}
603604
ibmr->u.mr = ib_mr;
604605
ibmr->odp = 1;
606+
607+
sge.addr = virt_addr;
608+
sge.length = length;
609+
sge.lkey = ib_mr->lkey;
610+
611+
ib_advise_mr(rds_ibdev->pd,
612+
IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_WRITE,
613+
IB_UVERBS_ADVISE_MR_FLAG_FLUSH, &sge, 1);
605614
return ibmr;
606615
}
607616

0 commit comments

Comments
 (0)