Derecho  0.9
Distributed systems toolkit for RDMA
Public Member Functions | Private Member Functions | List of all members
sst::resources_two_sided Class Reference

A public-facing version of the internal _resources class that extends it with functions that support two-sided sends and receives. More...

#include <lf.hpp>

Inheritance diagram for sst::resources_two_sided:
Inheritance graph
[legend]
Collaboration diagram for sst::resources_two_sided:
Collaboration graph
[legend]

Public Member Functions

 resources_two_sided (int r_id, char *write_addr, char *read_addr, int size_w, int size_r, int is_lf_server)
 constructor: simply forwards to _resources::_resources More...
 
void post_two_sided_send (const long long int size)
 
void post_two_sided_send (const long long int offset, long long int size)
 Post an RDMA write at an offset into remote memory. More...
 
void post_two_sided_send_with_completion (struct lf_sender_ctxt *ctxt, const long long int size)
 
void post_two_sided_send_with_completion (struct lf_sender_ctxt *ctxt, const long long int offset, const long long int size)
 Post an RDMA write at an offset into remote memory. More...
 
void post_two_sided_receive (struct lf_sender_ctxt *ctxt, const long long int size)
 
void post_two_sided_receive (struct lf_sender_ctxt *ctxt, const long long int offset, const long long int size)
 
 resources_two_sided (int r_index, char *write_addr, char *read_addr, int size_w, int size_r)
 
void post_two_sided_send (const uint32_t id, const long long int size)
 
void post_two_sided_send (const uint32_t id, const long long int offset, long long int size)
 Post an RDMA write at an offset into remote memory. More...
 
void post_two_sided_send_with_completion (const uint32_t id, const long long int size)
 
void post_two_sided_send_with_completion (const uint32_t id, const long long int offset, const long long int size)
 Post an RDMA write at an offset into remote memory. More...
 
void post_two_sided_receive (const uint32_t id, const long long int size)
 
void post_two_sided_receive (const uint32_t id, const long long int offset, const long long int size)
 
- Public Member Functions inherited from sst::_resources
 _resources (int r_id, char *write_addr, char *read_addr, int size_w, int size_r, int is_lf_server)
 Constructor Initializes the resources. More...
 
virtual ~_resources ()
 Destroys the resources. More...
 
 _resources (int r_index, char *write_addr, char *read_addr, int size_w, int size_r)
 Constructor; initializes Queue Pair, Memory Regions, and remote_props. More...
 
virtual ~_resources ()
 Destroys the resources. More...
 

Private Member Functions

int post_receive (struct lf_sender_ctxt *ctxt, const long long int offset, const long long int size)
 
int post_receive (const uint32_t id, const long long int offset, const long long int size)
 

Additional Inherited Members

- Public Attributes inherited from sst::_resources
int remote_id
 ID of the remote node. More...
 
struct fid_ep * ep
 tx/rx completion queue More...
 
struct fid_mr * write_mr
 memory region for remote writer More...
 
struct fid_mr * read_mr
 memory region for remote writer More...
 
char * write_buf
 Pointer to the memory buffer used for local writes. More...
 
char * read_buf
 Pointer to the memory buffer used for the results of RDMA remote reads. More...
 
uint64_t mr_lrkey
 key for local read buffer More...
 
uint64_t mr_lwkey
 key for local write buffer More...
 
uint64_t mr_rwkey
 key for remote write buffer More...
 
fi_addr_t remote_fi_addr
 remote write memory address More...
 
struct fid_eq * eq
 the event queue More...
 
int remote_index
 Index of the remote node. More...
 
struct ibv_qp * qp
 Handle for the IB Verbs Queue Pair object. More...
 
struct ibv_mr * write_mr
 Memory Region handle for the write buffer. More...
 
struct ibv_mr * read_mr
 Memory Region handle for the read buffer. More...
 
struct cm_con_data_t remote_props
 Connection data values needed to connect to remote side. More...
 
- Protected Member Functions inherited from sst::_resources
int post_remote_send (struct lf_sender_ctxt *ctxt, const long long int offset, const long long int size, const int op, const bool completion)
 post read/write request More...
 
int post_remote_send (const uint32_t id, const long long int offset, const long long int size, const int op, const bool completion)
 Post a remote RDMA operation. More...
 

Detailed Description

A public-facing version of the internal _resources class that extends it with functions that support two-sided sends and receives.

Definition at line 144 of file lf.hpp.

Constructor & Destructor Documentation

◆ resources_two_sided() [1/2]

sst::resources_two_sided::resources_two_sided ( int  r_id,
char *  write_addr,
char *  read_addr,
int  size_w,
int  size_r,
int  is_lf_server 
)
inline

constructor: simply forwards to _resources::_resources

Definition at line 149 of file lf.hpp.

◆ resources_two_sided() [2/2]

sst::resources_two_sided::resources_two_sided ( int  r_index,
char *  write_addr,
char *  read_addr,
int  size_w,
int  size_r 
)

Definition at line 418 of file verbs.cpp.

Member Function Documentation

◆ post_receive() [1/2]

int sst::resources_two_sided::post_receive ( const uint32_t  id,
const long long int  offset,
const long long int  size 
)
private

Definition at line 460 of file verbs.cpp.

◆ post_receive() [2/2]

int sst::resources_two_sided::post_receive ( struct lf_sender_ctxt ctxt,
const long long int  offset,
const long long int  size 
)
private

Definition at line 538 of file lf.cpp.

◆ post_two_sided_receive() [1/4]

void sst::resources_two_sided::post_two_sided_receive ( const uint32_t  id,
const long long int  size 
)

Definition at line 482 of file verbs.cpp.

◆ post_two_sided_receive() [2/4]

void sst::resources_two_sided::post_two_sided_receive ( const uint32_t  id,
const long long int  offset,
const long long int  size 
)

Definition at line 489 of file verbs.cpp.

◆ post_two_sided_receive() [3/4]

void sst::resources_two_sided::post_two_sided_receive ( struct lf_sender_ctxt ctxt,
const long long int  size 
)

Definition at line 524 of file lf.cpp.

◆ post_two_sided_receive() [4/4]

void sst::resources_two_sided::post_two_sided_receive ( struct lf_sender_ctxt ctxt,
const long long int  offset,
const long long int  size 
)

Definition at line 531 of file lf.cpp.

◆ post_two_sided_send() [1/4]

void sst::resources_two_sided::post_two_sided_send ( const uint32_t  id,
const long long int  size 
)
Parameters
sizeThe number of bytes to write from the local buffer to remote memory.

Definition at line 426 of file verbs.cpp.

◆ post_two_sided_send() [2/4]

void sst::resources_two_sided::post_two_sided_send ( const uint32_t  id,
const long long int  offset,
long long int  size 
)

Post an RDMA write at an offset into remote memory.

Parameters
offsetThe offset, in bytes, of the remote memory buffer at which to start writing.
sizeThe number of bytes to write from the local buffer into remote memory.

Definition at line 439 of file verbs.cpp.

◆ post_two_sided_send() [3/4]

void sst::resources_two_sided::post_two_sided_send ( const long long int  size)
Parameters
sizeThe number of bytes to write from the local buffer to remote memory.

Definition at line 490 of file lf.cpp.

◆ post_two_sided_send() [4/4]

void sst::resources_two_sided::post_two_sided_send ( const long long int  offset,
long long int  size 
)

Post an RDMA write at an offset into remote memory.

Parameters
offsetThe offset, in bytes, of the remote memory buffer at which to start writing.
sizeThe number of bytes to write from the local buffer into remote memory.

Definition at line 503 of file lf.cpp.

◆ post_two_sided_send_with_completion() [1/4]

void sst::resources_two_sided::post_two_sided_send_with_completion ( const uint32_t  id,
const long long int  size 
)

Definition at line 446 of file verbs.cpp.

◆ post_two_sided_send_with_completion() [2/4]

void sst::resources_two_sided::post_two_sided_send_with_completion ( const uint32_t  id,
const long long int  offset,
const long long int  size 
)

Post an RDMA write at an offset into remote memory.

Definition at line 453 of file verbs.cpp.

◆ post_two_sided_send_with_completion() [3/4]

void sst::resources_two_sided::post_two_sided_send_with_completion ( struct lf_sender_ctxt ctxt,
const long long int  size 
)

Definition at line 510 of file lf.cpp.

◆ post_two_sided_send_with_completion() [4/4]

void sst::resources_two_sided::post_two_sided_send_with_completion ( struct lf_sender_ctxt ctxt,
const long long int  offset,
const long long int  size 
)

Post an RDMA write at an offset into remote memory.

Definition at line 517 of file lf.cpp.


The documentation for this class was generated from the following files: