Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ycai
simbricks
Commits
99ec2047
Commit
99ec2047
authored
Aug 24, 2021
by
Antoine Kaufmann
Browse files
dist: change NetOpPassEntries signature to include position
parent
a065584a
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
13 additions
and
13 deletions
+13
-13
dist/common/net.c
dist/common/net.c
+1
-1
dist/common/net.h
dist/common/net.h
+1
-1
dist/rdma/rdma.c
dist/rdma/rdma.c
+5
-5
dist/sockets/net_sockets.c
dist/sockets/net_sockets.c
+6
-6
No files found.
dist/common/net.c
View file @
99ec2047
...
@@ -387,7 +387,7 @@ static inline void PollPeerTransfer(struct Peer *peer, bool *report) {
...
@@ -387,7 +387,7 @@ static inline void PollPeerTransfer(struct Peer *peer, bool *report) {
}
}
if
(
n
>
0
)
{
if
(
n
>
0
)
{
NetOpPassEntries
(
peer
,
n
);
NetOpPassEntries
(
peer
,
peer
->
local_pos
,
n
);
peer
->
local_pos
+=
n
;
peer
->
local_pos
+=
n
;
if
(
peer
->
local_pos
>=
peer
->
local_enum
)
if
(
peer
->
local_pos
>=
peer
->
local_enum
)
peer
->
local_pos
-=
peer
->
local_enum
;
peer
->
local_pos
-=
peer
->
local_enum
;
...
...
dist/common/net.h
View file @
99ec2047
...
@@ -107,7 +107,7 @@ void NetEntryReceived(struct Peer *peer, uint32_t pos, void *data);
...
@@ -107,7 +107,7 @@ void NetEntryReceived(struct Peer *peer, uint32_t pos, void *data);
// To be implemented in proxy implementation
// To be implemented in proxy implementation
int
NetOpPassIntro
(
struct
Peer
*
peer
);
int
NetOpPassIntro
(
struct
Peer
*
peer
);
int
NetOpPassEntries
(
struct
Peer
*
peer
,
size
_t
n
);
int
NetOpPassEntries
(
struct
Peer
*
peer
,
uint32_t
pos
,
uint32
_t
n
);
int
NetOpPassReport
();
int
NetOpPassReport
();
#endif // DIST_NET_RDMA_H_
#endif // DIST_NET_RDMA_H_
dist/rdma/rdma.c
View file @
99ec2047
...
@@ -443,10 +443,10 @@ int NetOpPassIntro(struct Peer *peer) {
...
@@ -443,10 +443,10 @@ int NetOpPassIntro(struct Peer *peer) {
return
0
;
return
0
;
}
}
int
NetOpPassEntries
(
struct
Peer
*
peer
,
size
_t
n
)
{
int
NetOpPassEntries
(
struct
Peer
*
peer
,
uint32_t
pos
,
uint32
_t
n
)
{
#ifdef RDMA_DEBUG
#ifdef RDMA_DEBUG
fprintf
(
stderr
,
"NetOpPassEntries(%s,%u)
\n
"
,
peer
->
sock_path
,
fprintf
(
stderr
,
"NetOpPassEntries(%s,%u)
\n
"
,
peer
->
sock_path
,
peer
->
local_
pos
);
pos
);
fprintf
(
stderr
,
" remote_base=%lx local_base=%p
\n
"
,
peer
->
remote_base
,
fprintf
(
stderr
,
" remote_base=%lx local_base=%p
\n
"
,
peer
->
remote_base
,
peer
->
local_base
);
peer
->
local_base
);
#endif
#endif
...
@@ -456,9 +456,9 @@ int NetOpPassEntries(struct Peer *peer, size_t n) {
...
@@ -456,9 +456,9 @@ int NetOpPassEntries(struct Peer *peer, size_t n) {
last_signaled
=
0
;
last_signaled
=
0
;
while
(
1
)
{
while
(
1
)
{
uint64_t
pos
=
peer
->
local_
pos
*
peer
->
local_elen
;
uint64_t
abs_
pos
=
pos
*
peer
->
local_elen
;
struct
ibv_sge
sge
;
struct
ibv_sge
sge
;
sge
.
addr
=
(
uintptr_t
)
(
peer
->
local_base
+
pos
);
sge
.
addr
=
(
uintptr_t
)
(
peer
->
local_base
+
abs_
pos
);
sge
.
length
=
peer
->
local_elen
*
n
;
sge
.
length
=
peer
->
local_elen
*
n
;
struct
ibv_mr
*
mr
=
peer
->
shm_opaque
;
struct
ibv_mr
*
mr
=
peer
->
shm_opaque
;
sge
.
lkey
=
mr
->
lkey
;
sge
.
lkey
=
mr
->
lkey
;
...
@@ -468,7 +468,7 @@ int NetOpPassEntries(struct Peer *peer, size_t n) {
...
@@ -468,7 +468,7 @@ int NetOpPassEntries(struct Peer *peer, size_t n) {
send_wr
.
opcode
=
IBV_WR_RDMA_WRITE
;
send_wr
.
opcode
=
IBV_WR_RDMA_WRITE
;
if
(
triggerSig
)
if
(
triggerSig
)
send_wr
.
send_flags
=
IBV_SEND_SIGNALED
;
send_wr
.
send_flags
=
IBV_SEND_SIGNALED
;
send_wr
.
wr
.
rdma
.
remote_addr
=
peer
->
remote_base
+
pos
;
send_wr
.
wr
.
rdma
.
remote_addr
=
peer
->
remote_base
+
abs_
pos
;
send_wr
.
wr
.
rdma
.
rkey
=
peer
->
remote_rkey
;
send_wr
.
wr
.
rdma
.
rkey
=
peer
->
remote_rkey
;
send_wr
.
sg_list
=
&
sge
;
send_wr
.
sg_list
=
&
sge
;
send_wr
.
num_sge
=
1
;
send_wr
.
num_sge
=
1
;
...
...
dist/sockets/net_sockets.c
View file @
99ec2047
...
@@ -487,14 +487,14 @@ int NetOpPassIntro(struct Peer *peer) {
...
@@ -487,14 +487,14 @@ int NetOpPassIntro(struct Peer *peer) {
return
ret
;
return
ret
;
}
}
int
NetOpPassEntries
(
struct
Peer
*
peer
,
size
_t
n
)
{
int
NetOpPassEntries
(
struct
Peer
*
peer
,
uint32_t
pos
,
uint32
_t
n
)
{
#ifdef SOCK_DEBUG
#ifdef SOCK_DEBUG
fprintf
(
stderr
,
"NetOpPassEntires(%s, n=%zu, pos=%u)
\n
"
,
peer
->
sock_path
,
n
,
fprintf
(
stderr
,
"NetOpPassEntires(%s, n=%zu, pos=%u)
\n
"
,
peer
->
sock_path
,
n
,
peer
->
local_
pos
);
pos
);
#endif
#endif
if
(
n
*
peer
->
local_elen
>
TXBUF_SIZE
)
{
if
(
n
*
peer
->
local_elen
>
TXBUF_SIZE
)
{
fprintf
(
stderr
,
fprintf
(
stderr
,
"NetOpPassEntries: tx buffer too small (%u) for n (%
z
u) entries
\n
"
,
"NetOpPassEntries: tx buffer too small (%u) for n (%u) entries
\n
"
,
TXBUF_SIZE
,
n
);
TXBUF_SIZE
,
n
);
abort
();
abort
();
}
}
...
@@ -506,11 +506,11 @@ int NetOpPassEntries(struct Peer *peer, size_t n) {
...
@@ -506,11 +506,11 @@ int NetOpPassEntries(struct Peer *peer, size_t n) {
msg
->
id
=
peer
-
peers
;
msg
->
id
=
peer
-
peers
;
msg
->
msg_type
=
kMsgEntries
;
msg
->
msg_type
=
kMsgEntries
;
msg
->
entries
.
num_entries
=
n
;
msg
->
entries
.
num_entries
=
n
;
msg
->
entries
.
pos
=
peer
->
local_
pos
;
msg
->
entries
.
pos
=
pos
;
uint64_t
pos
=
peer
->
local_
pos
*
peer
->
local_elen
;
uint64_t
abs_
pos
=
pos
*
peer
->
local_elen
;
uint32_t
len
=
n
*
peer
->
local_elen
;
uint32_t
len
=
n
*
peer
->
local_elen
;
memcpy
(
msg
->
entries
.
data
,
peer
->
local_base
+
pos
,
len
);
memcpy
(
msg
->
entries
.
data
,
peer
->
local_base
+
abs_
pos
,
len
);
#ifdef SOCK_DEBUG
#ifdef SOCK_DEBUG
/*fprintf(stderr, " data: ");
/*fprintf(stderr, " data: ");
{
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment