Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
xprt_rdma.h File Reference
#include <linux/wait.h>
#include <linux/spinlock.h>
#include <linux/atomic.h>
#include <rdma/rdma_cm.h>
#include <rdma/ib_verbs.h>
#include <linux/sunrpc/clnt.h>
#include <linux/sunrpc/rpc_rdma.h>
#include <linux/sunrpc/xprtrdma.h>

Go to the source code of this file.

Data Structures

struct  rpcrdma_ia
 
struct  rpcrdma_ep
 
struct  rpcrdma_rep
 
struct  rpcrdma_mr_seg
 
struct  rpcrdma_req
 
struct  rpcrdma_buffer
 
struct  rpcrdma_create_data_internal
 
struct  rpcrdma_stats
 
struct  rpcrdma_xprt
 

Macros

#define RDMA_RESOLVE_TIMEOUT   (5000) /* 5 seconds */
 
#define RDMA_CONNECT_RETRY_MAX   (2) /* retries if no listener backlog */
 
#define INIT_CQCOUNT(ep)   atomic_set(&(ep)->rep_cqcount, (ep)->rep_cqinit)
 
#define DECR_CQCOUNT(ep)   atomic_sub_return(1, &(ep)->rep_cqcount)
 
#define RPCRDMA_MAX_DATA_SEGS   (64) /* max scatter/gather */
 
#define RPCRDMA_MAX_SEGS   (RPCRDMA_MAX_DATA_SEGS + 2) /* head+tail = 2 */
 
#define MAX_RPCRDMAHDR
 
#define rpcr_to_rdmar(r)   container_of((r)->rq_buffer, struct rpcrdma_req, rl_xdr_buf[0])
 
#define rdmab_to_ia(b)   (&container_of((b), struct rpcrdma_xprt, rx_buf)->rx_ia)
 
#define RPCRDMA_INLINE_READ_THRESHOLD(rq)   (rpcx_to_rdmad(rq->rq_task->tk_xprt).inline_rsize)
 
#define RPCRDMA_INLINE_WRITE_THRESHOLD(rq)   (rpcx_to_rdmad(rq->rq_task->tk_xprt).inline_wsize)
 
#define RPCRDMA_INLINE_PAD_VALUE(rq)   rpcx_to_rdmad(rq->rq_task->tk_xprt).padding
 
#define rpcx_to_rdmax(x)   container_of(x, struct rpcrdma_xprt, xprt)
 
#define rpcx_to_rdmad(x)   (rpcx_to_rdmax(x)->rx_data)
 

Functions

int rpcrdma_ia_open (struct rpcrdma_xprt *, struct sockaddr *, int)
 
void rpcrdma_ia_close (struct rpcrdma_ia *)
 
int rpcrdma_ep_create (struct rpcrdma_ep *, struct rpcrdma_ia *, struct rpcrdma_create_data_internal *)
 
int rpcrdma_ep_destroy (struct rpcrdma_ep *, struct rpcrdma_ia *)
 
int rpcrdma_ep_connect (struct rpcrdma_ep *, struct rpcrdma_ia *)
 
int rpcrdma_ep_disconnect (struct rpcrdma_ep *, struct rpcrdma_ia *)
 
int rpcrdma_ep_post (struct rpcrdma_ia *, struct rpcrdma_ep *, struct rpcrdma_req *)
 
int rpcrdma_ep_post_recv (struct rpcrdma_ia *, struct rpcrdma_ep *, struct rpcrdma_rep *)
 
int rpcrdma_buffer_create (struct rpcrdma_buffer *, struct rpcrdma_ep *, struct rpcrdma_ia *, struct rpcrdma_create_data_internal *)
 
void rpcrdma_buffer_destroy (struct rpcrdma_buffer *)
 
struct rpcrdma_reqrpcrdma_buffer_get (struct rpcrdma_buffer *)
 
void rpcrdma_buffer_put (struct rpcrdma_req *)
 
void rpcrdma_recv_buffer_get (struct rpcrdma_req *)
 
void rpcrdma_recv_buffer_put (struct rpcrdma_rep *)
 
int rpcrdma_register_internal (struct rpcrdma_ia *, void *, int, struct ib_mr **, struct ib_sge *)
 
int rpcrdma_deregister_internal (struct rpcrdma_ia *, struct ib_mr *, struct ib_sge *)
 
int rpcrdma_register_external (struct rpcrdma_mr_seg *, int, int, struct rpcrdma_xprt *)
 
int rpcrdma_deregister_external (struct rpcrdma_mr_seg *, struct rpcrdma_xprt *, void *)
 
void rpcrdma_conn_func (struct rpcrdma_ep *)
 
void rpcrdma_reply_handler (struct rpcrdma_rep *)
 
int rpcrdma_marshal_req (struct rpc_rqst *)
 

Variables

int xprt_rdma_pad_optimize
 
struct kmem_cachesvc_rdma_map_cachep
 
struct kmem_cachesvc_rdma_ctxt_cachep
 
struct workqueue_structsvc_rdma_wq
 

Macro Definition Documentation

#define DECR_CQCOUNT (   ep)    atomic_sub_return(1, &(ep)->rep_cqcount)

Definition at line 92 of file xprt_rdma.h.

#define INIT_CQCOUNT (   ep)    atomic_set(&(ep)->rep_cqcount, (ep)->rep_cqinit)

Definition at line 91 of file xprt_rdma.h.

#define MAX_RPCRDMAHDR
Value:
(\
/* max supported RPC/RDMA header */ \
sizeof(struct rpcrdma_msg) + (2 * sizeof(u32)) + \
(sizeof(struct rpcrdma_read_chunk) * RPCRDMA_MAX_SEGS) + sizeof(u32))

Definition at line 114 of file xprt_rdma.h.

#define RDMA_CONNECT_RETRY_MAX   (2) /* retries if no listener backlog */

Definition at line 55 of file xprt_rdma.h.

#define RDMA_RESOLVE_TIMEOUT   (5000) /* 5 seconds */

Definition at line 54 of file xprt_rdma.h.

#define rdmab_to_ia (   b)    (&container_of((b), struct rpcrdma_xprt, rx_buf)->rx_ia)

Definition at line 219 of file xprt_rdma.h.

#define rpcr_to_rdmar (   r)    container_of((r)->rq_buffer, struct rpcrdma_req, rl_xdr_buf[0])

Definition at line 198 of file xprt_rdma.h.

#define RPCRDMA_INLINE_PAD_VALUE (   rq)    rpcx_to_rdmad(rq->rq_task->tk_xprt).padding

Definition at line 243 of file xprt_rdma.h.

#define RPCRDMA_INLINE_READ_THRESHOLD (   rq)    (rpcx_to_rdmad(rq->rq_task->tk_xprt).inline_rsize)

Definition at line 237 of file xprt_rdma.h.

#define RPCRDMA_INLINE_WRITE_THRESHOLD (   rq)    (rpcx_to_rdmad(rq->rq_task->tk_xprt).inline_wsize)

Definition at line 240 of file xprt_rdma.h.

#define RPCRDMA_MAX_DATA_SEGS   (64) /* max scatter/gather */

Definition at line 112 of file xprt_rdma.h.

#define RPCRDMA_MAX_SEGS   (RPCRDMA_MAX_DATA_SEGS + 2) /* head+tail = 2 */

Definition at line 113 of file xprt_rdma.h.

#define rpcx_to_rdmad (   x)    (rpcx_to_rdmax(x)->rx_data)

Definition at line 285 of file xprt_rdma.h.

#define rpcx_to_rdmax (   x)    container_of(x, struct rpcrdma_xprt, xprt)

Definition at line 284 of file xprt_rdma.h.

Function Documentation

int rpcrdma_buffer_create ( struct rpcrdma_buffer ,
struct rpcrdma_ep ,
struct rpcrdma_ia ,
struct rpcrdma_create_data_internal  
)

Definition at line 966 of file verbs.c.

void rpcrdma_buffer_destroy ( struct rpcrdma_buffer )

Definition at line 1174 of file verbs.c.

struct rpcrdma_req* rpcrdma_buffer_get ( struct rpcrdma_buffer )
read

Definition at line 1252 of file verbs.c.

void rpcrdma_buffer_put ( struct rpcrdma_req )

Definition at line 1295 of file verbs.c.

void rpcrdma_conn_func ( struct rpcrdma_ep )

Definition at line 692 of file rpc_rdma.c.

int rpcrdma_deregister_external ( struct rpcrdma_mr_seg ,
struct rpcrdma_xprt ,
void  
)

Definition at line 1840 of file verbs.c.

int rpcrdma_deregister_internal ( struct rpcrdma_ia ,
struct ib_mr ,
struct ib_sge  
)

Definition at line 1429 of file verbs.c.

int rpcrdma_ep_connect ( struct rpcrdma_ep ,
struct rpcrdma_ia  
)

Definition at line 825 of file verbs.c.

int rpcrdma_ep_create ( struct rpcrdma_ep ,
struct rpcrdma_ia ,
struct rpcrdma_create_data_internal  
)

Definition at line 639 of file verbs.c.

int rpcrdma_ep_destroy ( struct rpcrdma_ep ,
struct rpcrdma_ia  
)

Definition at line 790 of file verbs.c.

int rpcrdma_ep_disconnect ( struct rpcrdma_ep ,
struct rpcrdma_ia  
)

Definition at line 943 of file verbs.c.

int rpcrdma_ep_post ( struct rpcrdma_ia ,
struct rpcrdma_ep ,
struct rpcrdma_req  
)

Definition at line 1888 of file verbs.c.

int rpcrdma_ep_post_recv ( struct rpcrdma_ia ,
struct rpcrdma_ep ,
struct rpcrdma_rep  
)

Definition at line 1938 of file verbs.c.

void rpcrdma_ia_close ( struct rpcrdma_ia )

Definition at line 612 of file verbs.c.

int rpcrdma_ia_open ( struct rpcrdma_xprt ,
struct sockaddr ,
int   
)

Definition at line 459 of file verbs.c.

int rpcrdma_marshal_req ( struct rpc_rqst *  )

Definition at line 367 of file rpc_rdma.c.

void rpcrdma_recv_buffer_get ( struct rpcrdma_req )

Definition at line 1344 of file verbs.c.

void rpcrdma_recv_buffer_put ( struct rpcrdma_rep )

Definition at line 1365 of file verbs.c.

int rpcrdma_register_external ( struct rpcrdma_mr_seg ,
int  ,
int  ,
struct rpcrdma_xprt  
)

Definition at line 1794 of file verbs.c.

int rpcrdma_register_internal ( struct rpcrdma_ia ,
void ,
int  ,
struct ib_mr **  ,
struct ib_sge  
)

Definition at line 1381 of file verbs.c.

void rpcrdma_reply_handler ( struct rpcrdma_rep )

Definition at line 725 of file rpc_rdma.c.

Variable Documentation

struct kmem_cache* svc_rdma_ctxt_cachep

Definition at line 77 of file svc_rdma.c.

struct kmem_cache* svc_rdma_map_cachep

Definition at line 76 of file svc_rdma.c.

struct workqueue_struct* svc_rdma_wq

Definition at line 79 of file svc_rdma.c.

int xprt_rdma_pad_optimize

Definition at line 75 of file transport.c.