Skip to content

when testing rdma ioengine, why rw must be read for server and write for client #2080

Description

@hityupeng

I have tried testing the rdmaio engine, and found rw must be read for server and write for client.
While specified ip address to filename to try to run the client, it would crash and report segfault if rw=read. And then I checked the code and found in function fio_rdmaio_init

	if (td_read(td)) {	/* READ as the server */
		rd->is_client = 0;
		td->flags |= TD_F_NO_PROGRESS;
		/* server rd->rdma_buf_len will be setup after got request */
		ret = fio_rdmaio_setup_listen(td, o->port);
	} else {		/* WRITE as the client */
		rd->is_client = 1;
		ret = fio_rdmaio_setup_connect(td, td->o.filename, o->port);
	}

Is there any reason that we have to set rw to read for server and write for client?

While I understand that the verb is what's tested and the io pattern is like client issuing verb and then send to server in a loop.
Can we just design case to perform rdma read and write to a remote space area like other io to a disk?

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions