roidayan / rdcp Goto Github PK
View Code? Open in Web Editor NEWRemote Data Copy (RDMA file copy program)
License: Other
Remote Data Copy (RDMA file copy program)
License: Other
If I transfer a 962 byte file, the file is created on the server, but it is 0 size:
ls -l foo
-rwxr-xr-x 1 razeh btt 962 Apr 1 15:39 foo*
ls -l foo
-rw------- 1 razeh btt 0 Apr 1 15:40 foo
The log on the server is:
verbose
created cm_id 0x8e6330
rdma_bind_addr successful
rdma_listen
cma_event type RDMA_CM_EVENT_CONNECT_REQUEST cma_id 0x2aaab4000a30 (remote)
child cma 0x2aaab4000a30
created pd 0x8e5e90
created channel 0x8e5eb0
created cq 0x8e8860
created qp 0x8e93a0
rdcp_setup_buffers called on cb 0x8d9290
allocated & registered buffers...
accepting client connection request
cq_thread started.
wait for cq event
cma_event type RDMA_CM_EVENT_ESTABLISHED cma_id 0x2aaab4000a30 (remote)
ESTABLISHED
handle cq event
poll
recv completion
Got metadata, replying
open fd 7
wait for cq event
handle cq event
poll
send completion
wait for cq event
cma_event type RDMA_CM_EVENT_DISCONNECTED cma_id 0x2aaab4000a30 (remote)
server DISCONNECT EVENT...
handle cq event
poll
post disconnect
If you copy a file that doesn't exist, the following sequence happens:
cm_thread starts
the client connects to the server
rdcp_run_client runs, fails, disconnects and sleeps(1)
cm_thread exits with a return status of 0
From a scripting point of view it makes it a bit more difficult to tell if things went wrong.
There is a double free in rdxcp_free_buffers of cb-start_buf.
It is freed at line 612 and again at line 631.
executing make generated the command which fails:
cc -Wall -libverbs -lrdmacm -lpthread rdcp.c -o rdcp
moving rdcp.c as first argument seems to work
cc rdcp.c -Wall -libverbs -lrdmacm -lpthread -o rdcp
example
[root@l-csi-demo-05 ~]# rdcp /tmp/mlxfwup.cache 11.7.159.6:/tmp/1.1
mlxfwup.cache 100% 0MB -2147483648MB/s 00:00 ETA
can you add standard input, standard output with named pipe source/destination
There is an extra semicolon around line 611 in rdcp.c:
`static void rdcp_free_buffers(struct rdcp_cb *cb)
{
int i;
VERBOSE_LOG(3, "rdcp_free_buffers called on cb %p\n", cb);
if (cb->start_buf); // THIS SEMICOLON DOESN'T MATCH THE INDENTATION
free(cb->start_buf);
if (cb->rdma_mr)
`
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.