aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2016-06-29 13:53:19 -0400
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2016-07-11 15:50:43 -0400
commita473018cfe0ef1e46c0ff9df3fa02afc23c9f1d2 (patch)
treeaf90fecedbcaf73d57e77545bf380e99c000d1fd
parent2dc3a69de0d6e7f4dba7dbf8eadd5c3ac34098c7 (diff)
xprtrdma: Remove rpcrdma_map_one() and friends
Clean up: ALLPHYSICAL is gone and FMR has been converted to use scatterlists. There are no more users of these functions. This patch shrinks the size of struct rpcrdma_req by about 3500 bytes on x86_64. There is one of these structs for each RPC credit (128 credits per transport connection). Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Tested-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
-rw-r--r--net/sunrpc/xprtrdma/verbs.c8
-rw-r--r--net/sunrpc/xprtrdma/xprt_rdma.h36
2 files changed, 0 insertions, 44 deletions
diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c
index 5ee98e9d0fe9..b80e767fe687 100644
--- a/net/sunrpc/xprtrdma/verbs.c
+++ b/net/sunrpc/xprtrdma/verbs.c
@@ -1086,14 +1086,6 @@ rpcrdma_recv_buffer_put(struct rpcrdma_rep *rep)
1086 * Wrappers for internal-use kmalloc memory registration, used by buffer code. 1086 * Wrappers for internal-use kmalloc memory registration, used by buffer code.
1087 */ 1087 */
1088 1088
1089void
1090rpcrdma_mapping_error(struct rpcrdma_mr_seg *seg)
1091{
1092 dprintk("RPC: map_one: offset %p iova %llx len %zu\n",
1093 seg->mr_offset,
1094 (unsigned long long)seg->mr_dma, seg->mr_dmalen);
1095}
1096
1097/** 1089/**
1098 * rpcrdma_alloc_regbuf - kmalloc and register memory for SEND/RECV buffers 1090 * rpcrdma_alloc_regbuf - kmalloc and register memory for SEND/RECV buffers
1099 * @ia: controlling rpcrdma_ia 1091 * @ia: controlling rpcrdma_ia
diff --git a/net/sunrpc/xprtrdma/xprt_rdma.h b/net/sunrpc/xprtrdma/xprt_rdma.h
index bcb168e3fe15..f1b6f2fb5355 100644
--- a/net/sunrpc/xprtrdma/xprt_rdma.h
+++ b/net/sunrpc/xprtrdma/xprt_rdma.h
@@ -277,9 +277,6 @@ struct rpcrdma_mr_seg { /* chunk descriptors */
277 u32 mr_rkey; /* registration result */ 277 u32 mr_rkey; /* registration result */
278 u32 mr_len; /* length of chunk or segment */ 278 u32 mr_len; /* length of chunk or segment */
279 int mr_nsegs; /* number of segments in chunk or 0 */ 279 int mr_nsegs; /* number of segments in chunk or 0 */
280 enum dma_data_direction mr_dir; /* segment mapping direction */
281 dma_addr_t mr_dma; /* segment mapping address */
282 size_t mr_dmalen; /* segment mapping length */
283 struct page *mr_page; /* owning page, if any */ 280 struct page *mr_page; /* owning page, if any */
284 char *mr_offset; /* kva if no page, else offset */ 281 char *mr_offset; /* kva if no page, else offset */
285}; 282};
@@ -496,45 +493,12 @@ void rpcrdma_destroy_wq(void);
496 * Wrappers for chunk registration, shared by read/write chunk code. 493 * Wrappers for chunk registration, shared by read/write chunk code.
497 */ 494 */
498 495
499void rpcrdma_mapping_error(struct rpcrdma_mr_seg *);
500
501static inline enum dma_data_direction 496static inline enum dma_data_direction
502rpcrdma_data_dir(bool writing) 497rpcrdma_data_dir(bool writing)
503{ 498{
504 return writing ? DMA_FROM_DEVICE : DMA_TO_DEVICE; 499 return writing ? DMA_FROM_DEVICE : DMA_TO_DEVICE;
505} 500}
506 501
507static inline void
508rpcrdma_map_one(struct ib_device *device, struct rpcrdma_mr_seg *seg,
509 enum dma_data_direction direction)
510{
511 seg->mr_dir = direction;
512 seg->mr_dmalen = seg->mr_len;
513
514 if (seg->mr_page)
515 seg->mr_dma = ib_dma_map_page(device,
516 seg->mr_page, offset_in_page(seg->mr_offset),
517 seg->mr_dmalen, seg->mr_dir);
518 else
519 seg->mr_dma = ib_dma_map_single(device,
520 seg->mr_offset,
521 seg->mr_dmalen, seg->mr_dir);
522
523 if (ib_dma_mapping_error(device, seg->mr_dma))
524 rpcrdma_mapping_error(seg);
525}
526
527static inline void
528rpcrdma_unmap_one(struct ib_device *device, struct rpcrdma_mr_seg *seg)
529{
530 if (seg->mr_page)
531 ib_dma_unmap_page(device,
532 seg->mr_dma, seg->mr_dmalen, seg->mr_dir);
533 else
534 ib_dma_unmap_single(device,
535 seg->mr_dma, seg->mr_dmalen, seg->mr_dir);
536}
537
538/* 502/*
539 * RPC/RDMA connection management calls - xprtrdma/rpc_rdma.c 503 * RPC/RDMA connection management calls - xprtrdma/rpc_rdma.c
540 */ 504 */