Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
ib.h File Reference
#include <rdma/ib_verbs.h>
#include <rdma/rdma_cm.h>
#include <linux/interrupt.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include "rds.h"
#include "rdma_transport.h"

Go to the source code of this file.

Data Structures

struct  rds_page_frag
 
struct  rds_ib_incoming
 
struct  rds_ib_cache_head
 
struct  rds_ib_refill_cache
 
struct  rds_ib_connect_private
 
struct  rds_ib_send_work
 
struct  rds_ib_recv_work
 
struct  rds_ib_work_ring
 
struct  rds_ib_connection
 
struct  rds_ib_ipaddr
 
struct  rds_ib_device
 
struct  rds_ib_statistics
 

Macros

#define RDS_FMR_SIZE   256
 
#define RDS_FMR_POOL_SIZE   8192
 
#define RDS_IB_MAX_SGE   8
 
#define RDS_IB_RECV_SGE   2
 
#define RDS_IB_DEFAULT_RECV_WR   1024
 
#define RDS_IB_DEFAULT_SEND_WR   256
 
#define RDS_IB_DEFAULT_RETRY_COUNT   2
 
#define RDS_IB_SUPPORTED_PROTOCOLS   0x00000003 /* minor versions supported */
 
#define RDS_IB_RECYCLE_BATCH_COUNT   32
 
#define IB_GET_SEND_CREDITS(v)   ((v) & 0xffff)
 
#define IB_GET_POST_CREDITS(v)   ((v) >> 16)
 
#define IB_SET_SEND_CREDITS(v)   ((v) & 0xffff)
 
#define IB_SET_POST_CREDITS(v)   ((v) << 16)
 
#define ibdev_to_node(ibdev)   dev_to_node(ibdev->dma_device)
 
#define rdsibdev_to_node(rdsibdev)   ibdev_to_node(rdsibdev->dev)
 
#define IB_ACK_IN_FLIGHT   0
 
#define IB_ACK_REQUESTED   1
 
#define RDS_IB_ACK_WR_ID   (~(u64) 0)
 
#define ib_dma_sync_sg_for_cpu   rds_ib_dma_sync_sg_for_cpu
 
#define ib_dma_sync_sg_for_device   rds_ib_dma_sync_sg_for_device
 
#define rds_ib_conn_error(conn, fmt...)   __rds_ib_conn_error(conn, KERN_WARNING "RDS/IB: " fmt)
 
#define rds_ib_stats_inc(member)   rds_stats_inc_which(rds_ib_stats, member)
 

Functions

struct rds_ib_devicerds_ib_get_client_data (struct ib_device *device)
 
void rds_ib_dev_put (struct rds_ib_device *rds_ibdev)
 
int rds_ib_conn_alloc (struct rds_connection *conn, gfp_t gfp)
 
void rds_ib_conn_free (void *arg)
 
int rds_ib_conn_connect (struct rds_connection *conn)
 
void rds_ib_conn_shutdown (struct rds_connection *conn)
 
void rds_ib_state_change (struct sock *sk)
 
int rds_ib_listen_init (void)
 
void rds_ib_listen_stop (void)
 
void __rds_ib_conn_error (struct rds_connection *conn, const char *,...)
 
int rds_ib_cm_handle_connect (struct rdma_cm_id *cm_id, struct rdma_cm_event *event)
 
int rds_ib_cm_initiate_connect (struct rdma_cm_id *cm_id)
 
void rds_ib_cm_connect_complete (struct rds_connection *conn, struct rdma_cm_event *event)
 
int rds_ib_update_ipaddr (struct rds_ib_device *rds_ibdev, __be32 ipaddr)
 
void rds_ib_add_conn (struct rds_ib_device *rds_ibdev, struct rds_connection *conn)
 
void rds_ib_remove_conn (struct rds_ib_device *rds_ibdev, struct rds_connection *conn)
 
void rds_ib_destroy_nodev_conns (void)
 
struct rds_ib_mr_poolrds_ib_create_mr_pool (struct rds_ib_device *)
 
void rds_ib_get_mr_info (struct rds_ib_device *rds_ibdev, struct rds_info_rdma_connection *iinfo)
 
void rds_ib_destroy_mr_pool (struct rds_ib_mr_pool *)
 
voidrds_ib_get_mr (struct scatterlist *sg, unsigned long nents, struct rds_sock *rs, u32 *key_ret)
 
void rds_ib_sync_mr (void *trans_private, int dir)
 
void rds_ib_free_mr (void *trans_private, int invalidate)
 
void rds_ib_flush_mrs (void)
 
int rds_ib_recv_init (void)
 
void rds_ib_recv_exit (void)
 
int rds_ib_recv (struct rds_connection *conn)
 
int rds_ib_recv_alloc_caches (struct rds_ib_connection *ic)
 
void rds_ib_recv_free_caches (struct rds_ib_connection *ic)
 
void rds_ib_recv_refill (struct rds_connection *conn, int prefill)
 
void rds_ib_inc_free (struct rds_incoming *inc)
 
int rds_ib_inc_copy_to_user (struct rds_incoming *inc, struct iovec *iov, size_t size)
 
void rds_ib_recv_cq_comp_handler (struct ib_cq *cq, void *context)
 
void rds_ib_recv_tasklet_fn (unsigned long data)
 
void rds_ib_recv_init_ring (struct rds_ib_connection *ic)
 
void rds_ib_recv_clear_ring (struct rds_ib_connection *ic)
 
void rds_ib_recv_init_ack (struct rds_ib_connection *ic)
 
void rds_ib_attempt_ack (struct rds_ib_connection *ic)
 
void rds_ib_ack_send_complete (struct rds_ib_connection *ic)
 
u64 rds_ib_piggyb_ack (struct rds_ib_connection *ic)
 
void rds_ib_ring_init (struct rds_ib_work_ring *ring, u32 nr)
 
void rds_ib_ring_resize (struct rds_ib_work_ring *ring, u32 nr)
 
u32 rds_ib_ring_alloc (struct rds_ib_work_ring *ring, u32 val, u32 *pos)
 
void rds_ib_ring_free (struct rds_ib_work_ring *ring, u32 val)
 
void rds_ib_ring_unalloc (struct rds_ib_work_ring *ring, u32 val)
 
int rds_ib_ring_empty (struct rds_ib_work_ring *ring)
 
int rds_ib_ring_low (struct rds_ib_work_ring *ring)
 
u32 rds_ib_ring_oldest (struct rds_ib_work_ring *ring)
 
u32 rds_ib_ring_completed (struct rds_ib_work_ring *ring, u32 wr_id, u32 oldest)
 
charrds_ib_wc_status_str (enum ib_wc_status status)
 
void rds_ib_xmit_complete (struct rds_connection *conn)
 
int rds_ib_xmit (struct rds_connection *conn, struct rds_message *rm, unsigned int hdr_off, unsigned int sg, unsigned int off)
 
void rds_ib_send_cq_comp_handler (struct ib_cq *cq, void *context)
 
void rds_ib_send_init_ring (struct rds_ib_connection *ic)
 
void rds_ib_send_clear_ring (struct rds_ib_connection *ic)
 
int rds_ib_xmit_rdma (struct rds_connection *conn, struct rm_rdma_op *op)
 
void rds_ib_send_add_credits (struct rds_connection *conn, unsigned int credits)
 
void rds_ib_advertise_credits (struct rds_connection *conn, unsigned int posted)
 
int rds_ib_send_grab_credits (struct rds_ib_connection *ic, u32 wanted, u32 *adv_credits, int need_posted, int max_posted)
 
int rds_ib_xmit_atomic (struct rds_connection *conn, struct rm_atomic_op *op)
 
 DECLARE_PER_CPU (struct rds_ib_statistics, rds_ib_stats)
 
unsigned int rds_ib_stats_info_copy (struct rds_info_iterator *iter, unsigned int avail)
 
int rds_ib_sysctl_init (void)
 
void rds_ib_sysctl_exit (void)
 

Variables

struct rw_semaphore rds_ib_devices_lock
 
struct list_head rds_ib_devices
 
struct workqueue_structrds_ib_wq
 
struct rds_transport rds_ib_transport
 
struct ib_client rds_ib_client
 
unsigned int fmr_message_size
 
unsigned int rds_ib_retry_count
 
spinlock_t ib_nodev_conns_lock
 
struct list_head ib_nodev_conns
 
wait_queue_head_t rds_ib_ring_empty_wait
 
unsigned long rds_ib_sysctl_max_send_wr
 
unsigned long rds_ib_sysctl_max_recv_wr
 
unsigned long rds_ib_sysctl_max_unsig_wrs
 
unsigned long rds_ib_sysctl_max_unsig_bytes
 
unsigned long rds_ib_sysctl_max_recv_allocation
 
unsigned int rds_ib_sysctl_flow_control
 

Macro Definition Documentation

#define IB_ACK_IN_FLIGHT   0

Definition at line 193 of file ib.h.

#define IB_ACK_REQUESTED   1

Definition at line 194 of file ib.h.

#define ib_dma_sync_sg_for_cpu   rds_ib_dma_sync_sg_for_cpu

Definition at line 249 of file ib.h.

#define ib_dma_sync_sg_for_device   rds_ib_dma_sync_sg_for_device

Definition at line 263 of file ib.h.

#define IB_GET_POST_CREDITS (   v)    ((v) >> 16)

Definition at line 161 of file ib.h.

#define IB_GET_SEND_CREDITS (   v)    ((v) & 0xffff)

Definition at line 160 of file ib.h.

#define IB_SET_POST_CREDITS (   v)    ((v) << 16)

Definition at line 163 of file ib.h.

#define IB_SET_SEND_CREDITS (   v)    ((v) & 0xffff)

Definition at line 162 of file ib.h.

#define ibdev_to_node (   ibdev)    dev_to_node(ibdev->dma_device)

Definition at line 189 of file ib.h.

#define RDS_FMR_POOL_SIZE   8192

Definition at line 13 of file ib.h.

#define RDS_FMR_SIZE   256

Definition at line 12 of file ib.h.

#define RDS_IB_ACK_WR_ID   (~(u64) 0)

Definition at line 197 of file ib.h.

#define rds_ib_conn_error (   conn,
  fmt... 
)    __rds_ib_conn_error(conn, KERN_WARNING "RDS/IB: " fmt)

Definition at line 294 of file ib.h.

#define RDS_IB_DEFAULT_RECV_WR   1024

Definition at line 18 of file ib.h.

#define RDS_IB_DEFAULT_RETRY_COUNT   2

Definition at line 21 of file ib.h.

#define RDS_IB_DEFAULT_SEND_WR   256

Definition at line 19 of file ib.h.

#define RDS_IB_MAX_SGE   8

Definition at line 15 of file ib.h.

#define RDS_IB_RECV_SGE   2

Definition at line 16 of file ib.h.

#define RDS_IB_RECYCLE_BATCH_COUNT   32

Definition at line 25 of file ib.h.

#define rds_ib_stats_inc (   member)    rds_stats_inc_which(rds_ib_stats, member)

Definition at line 359 of file ib.h.

#define RDS_IB_SUPPORTED_PROTOCOLS   0x00000003 /* minor versions supported */

Definition at line 23 of file ib.h.

#define rdsibdev_to_node (   rdsibdev)    ibdev_to_node(rdsibdev->dev)

Definition at line 190 of file ib.h.

Function Documentation

void __rds_ib_conn_error ( struct rds_connection conn,
const char ,
  ... 
)

Definition at line 821 of file ib_cm.c.

DECLARE_PER_CPU ( struct rds_ib_statistics  ,
rds_ib_stats   
)
void rds_ib_ack_send_complete ( struct rds_ib_connection ic)

Definition at line 708 of file ib_recv.c.

void rds_ib_add_conn ( struct rds_ib_device rds_ibdev,
struct rds_connection conn 
)

Definition at line 162 of file ib_rdma.c.

void rds_ib_advertise_credits ( struct rds_connection conn,
unsigned int  posted 
)

Definition at line 470 of file ib_send.c.

void rds_ib_attempt_ack ( struct rds_ib_connection ic)

Definition at line 681 of file ib_recv.c.

void rds_ib_cm_connect_complete ( struct rds_connection conn,
struct rdma_cm_event event 
)

Definition at line 125 of file ib_cm.c.

int rds_ib_cm_handle_connect ( struct rdma_cm_id cm_id,
struct rdma_cm_event event 
)

Definition at line 446 of file ib_cm.c.

int rds_ib_cm_initiate_connect ( struct rdma_cm_id cm_id)

Definition at line 543 of file ib_cm.c.

int rds_ib_conn_alloc ( struct rds_connection conn,
gfp_t  gfp 
)

Definition at line 745 of file ib_cm.c.

int rds_ib_conn_connect ( struct rds_connection conn)

Definition at line 579 of file ib_cm.c.

void rds_ib_conn_free ( void arg)

Definition at line 793 of file ib_cm.c.

void rds_ib_conn_shutdown ( struct rds_connection conn)

Definition at line 625 of file ib_cm.c.

struct rds_ib_mr_pool* rds_ib_create_mr_pool ( struct rds_ib_device )
read

Definition at line 215 of file ib_rdma.c.

void rds_ib_destroy_mr_pool ( struct rds_ib_mr_pool )

Definition at line 254 of file ib_rdma.c.

void rds_ib_destroy_nodev_conns ( void  )

Definition at line 201 of file ib_rdma.c.

void rds_ib_dev_put ( struct rds_ib_device rds_ibdev)

Definition at line 115 of file ib.c.

void rds_ib_flush_mrs ( void  )

Definition at line 729 of file ib_rdma.c.

void rds_ib_free_mr ( void trans_private,
int  invalidate 
)

Definition at line 694 of file ib_rdma.c.

struct rds_ib_device* rds_ib_get_client_data ( struct ib_device device)
read

Definition at line 214 of file ib.c.

void* rds_ib_get_mr ( struct scatterlist sg,
unsigned long  nents,
struct rds_sock rs,
u32 key_ret 
)

Definition at line 743 of file ib_rdma.c.

void rds_ib_get_mr_info ( struct rds_ib_device rds_ibdev,
struct rds_info_rdma_connection iinfo 
)

Definition at line 246 of file ib_rdma.c.

int rds_ib_inc_copy_to_user ( struct rds_incoming inc,
struct iovec iov,
size_t  size 
)

Definition at line 471 of file ib_recv.c.

void rds_ib_inc_free ( struct rds_incoming inc)

Definition at line 199 of file ib_recv.c.

int rds_ib_listen_init ( void  )
void rds_ib_listen_stop ( void  )
u64 rds_ib_piggyb_ack ( struct rds_ib_connection ic)

Definition at line 718 of file ib_recv.c.

int rds_ib_recv ( struct rds_connection conn)

Definition at line 1033 of file ib_recv.c.

int rds_ib_recv_alloc_caches ( struct rds_ib_connection ic)

Definition at line 120 of file ib_recv.c.

void rds_ib_recv_clear_ring ( struct rds_ib_connection ic)

Definition at line 233 of file ib_recv.c.

void rds_ib_recv_cq_comp_handler ( struct ib_cq cq,
void context 
)

Definition at line 948 of file ib_recv.c.

void rds_ib_recv_exit ( void  )

Definition at line 1071 of file ib_recv.c.

void rds_ib_recv_free_caches ( struct rds_ib_connection ic)

Definition at line 154 of file ib_recv.c.

int rds_ib_recv_init ( void  )

Definition at line 1045 of file ib_recv.c.

void rds_ib_recv_init_ack ( struct rds_ib_connection ic)

Definition at line 527 of file ib_recv.c.

void rds_ib_recv_init_ring ( struct rds_ib_connection ic)

Definition at line 46 of file ib_recv.c.

void rds_ib_recv_refill ( struct rds_connection conn,
int  prefill 
)

Definition at line 357 of file ib_recv.c.

void rds_ib_recv_tasklet_fn ( unsigned long  data)

Definition at line 1004 of file ib_recv.c.

void rds_ib_remove_conn ( struct rds_ib_device rds_ibdev,
struct rds_connection conn 
)

Definition at line 181 of file ib_rdma.c.

u32 rds_ib_ring_alloc ( struct rds_ib_work_ring ring,
u32  val,
u32 pos 
)

Definition at line 97 of file ib_ring.c.

u32 rds_ib_ring_completed ( struct rds_ib_work_ring ring,
u32  wr_id,
u32  oldest 
)

Definition at line 156 of file ib_ring.c.

int rds_ib_ring_empty ( struct rds_ib_work_ring ring)

Definition at line 133 of file ib_ring.c.

void rds_ib_ring_free ( struct rds_ib_work_ring ring,
u32  val 
)

Definition at line 117 of file ib_ring.c.

void rds_ib_ring_init ( struct rds_ib_work_ring ring,
u32  nr 
)

Definition at line 66 of file ib_ring.c.

int rds_ib_ring_low ( struct rds_ib_work_ring ring)

Definition at line 138 of file ib_ring.c.

u32 rds_ib_ring_oldest ( struct rds_ib_work_ring ring)

Definition at line 147 of file ib_ring.c.

void rds_ib_ring_resize ( struct rds_ib_work_ring ring,
u32  nr 
)

Definition at line 84 of file ib_ring.c.

void rds_ib_ring_unalloc ( struct rds_ib_work_ring ring,
u32  val 
)

Definition at line 127 of file ib_ring.c.

void rds_ib_send_add_credits ( struct rds_connection conn,
unsigned int  credits 
)

Definition at line 449 of file ib_send.c.

void rds_ib_send_clear_ring ( struct rds_ib_connection ic)

Definition at line 245 of file ib_send.c.

void rds_ib_send_cq_comp_handler ( struct ib_cq cq,
void context 
)

Definition at line 274 of file ib_send.c.

int rds_ib_send_grab_credits ( struct rds_ib_connection ic,
u32  wanted,
u32 adv_credits,
int  need_posted,
int  max_posted 
)

Definition at line 396 of file ib_send.c.

void rds_ib_send_init_ring ( struct rds_ib_connection ic)

Definition at line 222 of file ib_send.c.

void rds_ib_state_change ( struct sock sk)
unsigned int rds_ib_stats_info_copy ( struct rds_info_iterator iter,
unsigned int  avail 
)

Definition at line 74 of file ib_stats.c.

void rds_ib_sync_mr ( void trans_private,
int  dir 
)

Definition at line 451 of file ib_rdma.c.

void rds_ib_sysctl_exit ( void  )

Definition at line 109 of file ib_sysctl.c.

int rds_ib_sysctl_init ( void  )

Definition at line 115 of file ib_sysctl.c.

int rds_ib_update_ipaddr ( struct rds_ib_device rds_ibdev,
__be32  ipaddr 
)

Definition at line 149 of file ib_rdma.c.

char* rds_ib_wc_status_str ( enum ib_wc_status  status)

Definition at line 70 of file ib_send.c.

int rds_ib_xmit ( struct rds_connection conn,
struct rds_message rm,
unsigned int  hdr_off,
unsigned int  sg,
unsigned int  off 
)

Definition at line 525 of file ib_send.c.

int rds_ib_xmit_atomic ( struct rds_connection conn,
struct rm_atomic_op *  op 
)

Definition at line 787 of file ib_send.c.

void rds_ib_xmit_complete ( struct rds_connection conn)

Definition at line 1014 of file ib_send.c.

int rds_ib_xmit_rdma ( struct rds_connection conn,
struct rm_rdma_op *  op 
)

Definition at line 876 of file ib_send.c.

Variable Documentation

unsigned int fmr_message_size

Definition at line 47 of file ib.c.

struct list_head ib_nodev_conns
spinlock_t ib_nodev_conns_lock
struct ib_client rds_ib_client

Definition at line 260 of file ib.c.

struct list_head rds_ib_devices

Definition at line 63 of file ib.c.

struct rw_semaphore rds_ib_devices_lock
unsigned int rds_ib_retry_count

Definition at line 48 of file ib.c.

wait_queue_head_t rds_ib_ring_empty_wait
unsigned int rds_ib_sysctl_flow_control

Definition at line 62 of file ib_sysctl.c.

unsigned long rds_ib_sysctl_max_recv_allocation

Definition at line 43 of file ib_sysctl.c.

unsigned long rds_ib_sysctl_max_recv_wr

Definition at line 42 of file ib_sysctl.c.

unsigned long rds_ib_sysctl_max_send_wr

Definition at line 41 of file ib_sysctl.c.

unsigned long rds_ib_sysctl_max_unsig_bytes
unsigned long rds_ib_sysctl_max_unsig_wrs

Definition at line 48 of file ib_sysctl.c.

struct rds_transport rds_ib_transport

Definition at line 370 of file ib.c.