Skip to content

Commit

Permalink
RDMA message Update
Browse files Browse the repository at this point in the history
  • Loading branch information
jcf94 committed Nov 12, 2018
1 parent 622faa1 commit b8c71ea
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 20 deletions.
4 changes: 2 additions & 2 deletions benchmark.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ int main(int argc, char* argv[])
RDMA_Endpoint* endpoint = session.ptp_connect(&pre_tcp);

// Prepare data
int total_data = 16 * MB;
int block_data = 4 * KB;
int total_data = 128 * MB;
int block_data = 64 * KB;

if (strcmp(argv[1], "s") == 0)
{
Expand Down
2 changes: 1 addition & 1 deletion src/rdma_channel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ void RDMA_Channel::send_message(Message_type msgt, uint64_t addr)
send(msgt, 0);
break;
}
case RDMA_MESSAGE_BUFFER_UNLOCK:
case RDMA_MESSAGE_READ_OVER:
{
std::thread* work_thread = new std::thread([this, msgt, addr](){

Expand Down
19 changes: 12 additions & 7 deletions src/rdma_message.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,26 @@ std::string RDMA_Message::get_message(Message_type msgt)
case RDMA_MESSAGE_ACK:
return "RDMA_MESSAGE_ACK";
break;
case RDMA_MESSAGE_BUFFER_UNLOCK:
return "RDMA_MESSAGE_BUFFER_UNLOCK";
case RDMA_MESSAGE_CLOSE:
return "RDMA_MESSAGE_CLOSE";
break;
case RDMA_MESSAGE_TERMINATE:
return "RDMA_MESSAGE_TERMINATE";
break;

case RDMA_MESSAGE_WRITE_REQUEST:
return "RDMA_MESSAGE_WRITE_REQUEST";
break;
case RDMA_MESSAGE_WRITE_READY:
return "RDMA_MESSAGE_WRITE_READY";
break;
case RDMA_MESSAGE_READ_REQUEST:
return "RDMA_MESSAGE_READ_REQUEST";
break;
case RDMA_MESSAGE_CLOSE:
return "RDMA_MESSAGE_CLOSE";
break;
case RDMA_MESSAGE_TERMINATE:
return "RDMA_MESSAGE_TERMINATE";
case RDMA_MESSAGE_READ_OVER:
return "RDMA_MESSAGE_READ_OVER";
break;

default:
return "UNKNOWN MESSAGE";
}
Expand Down
21 changes: 13 additions & 8 deletions src/rdma_message.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,18 @@ PROG : RDMA_MESSAGE_H

#include "rdma_util.h"

enum Message_type
enum Message_type // Use Immediate Number as message type
{
RDMA_MESSAGE_ACK,
RDMA_MESSAGE_BUFFER_UNLOCK,
RDMA_MESSAGE_WRITE_REQUEST,
RDMA_MESSAGE_READ_REQUEST,
RDMA_MESSAGE_CLOSE,
RDMA_MESSAGE_TERMINATE
RDMA_MESSAGE_ACK, // no extra data
RDMA_MESSAGE_CLOSE, // no extra data
RDMA_MESSAGE_TERMINATE, // no extra data

RDMA_MESSAGE_WRITE_REQUEST, // addr(map key), size
RDMA_MESSAGE_WRITE_READY, // addr, size, rkey
RDMA_MESSAGE_READ_REQUEST, // addr, size, rkey
RDMA_MESSAGE_READ_OVER, // addr

RDMA_DATA // not a message, but memory data
};

struct Buffer_MR
Expand All @@ -43,7 +47,8 @@ static const size_t kBufferSizeEndIndex = kBufferSizeStartIndex + sizeof(Message

static const size_t kMessageTotalBytes = kBufferSizeEndIndex;

namespace RDMA_Message {
namespace RDMA_Message
{

std::string get_message(Message_type msgt);

Expand Down
4 changes: 2 additions & 2 deletions src/rdma_session.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ void RDMA_Session::session_processCQ()
log_info(make_string("Message Recv: %s", RDMA_Message::get_message(msgt).data()));
switch(msgt)
{
case RDMA_MESSAGE_BUFFER_UNLOCK:
case RDMA_MESSAGE_READ_OVER:
{
Message_Content msg = RDMA_Message::parse_message_content((char*)endpoint->channel()->incoming()->buffer());
endpoint->channel()->send_message(RDMA_MESSAGE_ACK);
Expand Down Expand Up @@ -346,7 +346,7 @@ void RDMA_Session::session_processCQ()
//log_ok(make_string("RDMA Read: %d bytes, total %d bytes", rb->size(), endpoint->total_recv_data()));

uint64_t res = endpoint->find_in_table((uint64_t)rb);
endpoint->channel()->send_message(RDMA_MESSAGE_BUFFER_UNLOCK, res);
endpoint->channel()->send_message(RDMA_MESSAGE_READ_OVER, res);

delete rb;

Expand Down

0 comments on commit b8c71ea

Please sign in to comment.