The following changes since commit 21b8aee865f0d3960687ce6ba7385e5977f45061: RDMA IO engine (2011-08-01 10:01:57 +0200) are available in the git repository at: git://git.kernel.dk/fio.git master Jens Axboe (1): Add 'wait_for_previous' as an alias for the 'stonewall' option Yufei Ren (1): RDMA update HOWTO | 3 ++- Makefile | 2 +- engines/rdma.c | 54 +++++++++++++++++++++++++++--------------------------- fio.1 | 4 ++-- options.c | 1 + 5 files changed, 33 insertions(+), 31 deletions(-) --- Diff of recent changes: diff --git a/HOWTO b/HOWTO index 5e9b390..88bd5e6 100644 --- a/HOWTO +++ b/HOWTO @@ -992,7 +992,8 @@ verify_backlog_batch=int Control how many blocks fio will verify if verify_backlog_batch is larger than verify_backlog, some blocks will be verified more than once. -stonewall Wait for preceeding jobs in the job file to exit, before +stonewall +wait_for_previous Wait for preceeding jobs in the job file to exit, before starting this one. Can be used to insert serialization points in the job file. A stone wall also implies starting a new reporting group. diff --git a/Makefile b/Makefile index e48c6e0..40d47d5 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ CPPFLAGS= -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \ $(DEBUGFLAGS) OPTFLAGS= -O2 -fno-omit-frame-pointer -g $(EXTFLAGS) CFLAGS = -std=gnu99 -Wwrite-strings -Wall $(OPTFLAGS) -LIBS = -lm $(EXTLIBS) +LIBS = -lm $(EXTLIBS) PROGS = fio SCRIPTS = fio_generate_plots UNAME := $(shell uname) diff --git a/engines/rdma.c b/engines/rdma.c index 2eeb897..060927a 100644 --- a/engines/rdma.c +++ b/engines/rdma.c @@ -114,7 +114,7 @@ static int client_recv(struct thread_data *td, struct ibv_wc *wc) struct rdmaio_data *rd = td->io_ops->data; if (wc->byte_len != sizeof(rd->recv_buf)) { - fprintf(stderr, "Received bogus data, size %d\n", wc->byte_len); + log_err("Received bogus data, size %d\n", wc->byte_len); return 1; } @@ -602,8 +602,8 @@ static int fio_rdmaio_send(struct thread_data *td, struct io_u **io_us, index = rand() % rd->rmt_nr; r_io_u_d->sq_wr.opcode = IBV_WR_RDMA_WRITE; r_io_u_d->sq_wr.wr.rdma.rkey = rd->rmt_us[index].rkey; - r_io_u_d->sq_wr.wr.rdma.remote_addr = - rd->rmt_us[index].buf; + r_io_u_d->sq_wr.wr.rdma.remote_addr = \ + rd->rmt_us[index].buf; r_io_u_d->sq_wr.sg_list->length = io_us[i]->buflen; break; case FIO_RDMA_MEM_READ: @@ -612,8 +612,8 @@ static int fio_rdmaio_send(struct thread_data *td, struct io_u **io_us, index = rand() % rd->rmt_nr; r_io_u_d->sq_wr.opcode = IBV_WR_RDMA_READ; r_io_u_d->sq_wr.wr.rdma.rkey = rd->rmt_us[index].rkey; - r_io_u_d->sq_wr.wr.rdma.remote_addr = - rd->rmt_us[index].buf; + r_io_u_d->sq_wr.wr.rdma.remote_addr = \ + rd->rmt_us[index].buf; r_io_u_d->sq_wr.sg_list->length = io_us[i]->buflen; break; case FIO_RDMA_CHA_SEND: @@ -1087,9 +1087,9 @@ static int fio_rdmaio_init(struct thread_data *td) if ((rd->rdma_protocol == FIO_RDMA_MEM_WRITE) || (rd->rdma_protocol == FIO_RDMA_MEM_READ)) { rd->rmt_us = - malloc(FIO_RDMA_MAX_IO_DPETH * sizeof(struct remote_u)); + malloc(FIO_RDMA_MAX_IO_DPETH * sizeof(struct remote_u)); memset(rd->rmt_us, 0, - FIO_RDMA_MAX_IO_DPETH * sizeof(struct remote_u)); + FIO_RDMA_MAX_IO_DPETH * sizeof(struct remote_u)); rd->rmt_nr = 0; } @@ -1184,19 +1184,19 @@ static int fio_rdmaio_setup(struct thread_data *td) } static struct ioengine_ops ioengine_rw = { - .name = "rdma", - .version = FIO_IOOPS_VERSION, - .setup = fio_rdmaio_setup, - .init = fio_rdmaio_init, - .prep = fio_rdmaio_prep, - .queue = fio_rdmaio_queue, - .commit = fio_rdmaio_commit, - .getevents = fio_rdmaio_getevents, - .event = fio_rdmaio_event, - .cleanup = fio_rdmaio_cleanup, - .open_file = fio_rdmaio_open_file, - .close_file = fio_rdmaio_close_file, - .flags = FIO_DISKLESSIO | FIO_UNIDIR | FIO_PIPEIO, + .name = "rdma", + .version = FIO_IOOPS_VERSION, + .setup = fio_rdmaio_setup, + .init = fio_rdmaio_init, + .prep = fio_rdmaio_prep, + .queue = fio_rdmaio_queue, + .commit = fio_rdmaio_commit, + .getevents = fio_rdmaio_getevents, + .event = fio_rdmaio_event, + .cleanup = fio_rdmaio_cleanup, + .open_file = fio_rdmaio_open_file, + .close_file = fio_rdmaio_close_file, + .flags = FIO_DISKLESSIO | FIO_UNIDIR | FIO_PIPEIO, }; #else /* FIO_HAVE_RDMA */ @@ -1231,13 +1231,13 @@ static int fio_rdmaio_init(struct thread_data fio_unused * td) } static struct ioengine_ops ioengine_rw = { - .name = "rdma", - .version = FIO_IOOPS_VERSION, - .init = fio_rdmaio_init, - .queue = fio_rdmaio_queue, - .open_file = fio_rdmaio_open_file, - .close_file = fio_rdmaio_close_file, - .flags = FIO_SYNCIO | FIO_DISKLESSIO | FIO_UNIDIR | FIO_PIPEIO, + .name = "rdma", + .version = FIO_IOOPS_VERSION, + .init = fio_rdmaio_init, + .queue = fio_rdmaio_queue, + .open_file = fio_rdmaio_open_file, + .close_file = fio_rdmaio_close_file, + .flags = FIO_SYNCIO | FIO_DISKLESSIO | FIO_UNIDIR | FIO_PIPEIO, }; #endif diff --git a/fio.1 b/fio.1 index e48a16a..65877d2 100644 --- a/fio.1 +++ b/fio.1 @@ -630,7 +630,7 @@ number, eg echoing 8 will ensure that the OS has 8 huge pages ready for use. .RE .TP -.BI iomem_align \fR=\fPint +.BI iomem_align \fR=\fPint "\fR,\fP mem_align" \fR=\fPint This indiciates the memory alignment of the IO memory buffers. Note that the given alignment is applied to the first IO unit buffer, if using \fBiodepth\fR the alignment of the following buffers are given by the \fBbs\fR used. In @@ -762,7 +762,7 @@ read back and verified). If \fBverify_backlog_batch\fR is less than \fBverify_backlog_batch\fR is larger than \fBverify_backlog\fR, some blocks will be verified more than once. .TP -.B stonewall +.B stonewall "\fR,\fP wait_for_previous" Wait for preceding jobs in the job file to exit before starting this one. \fBstonewall\fR implies \fBnew_group\fR. .TP diff --git a/options.c b/options.c index ffe5470..82e3e27 100644 --- a/options.c +++ b/options.c @@ -1879,6 +1879,7 @@ static struct fio_option options[FIO_MAX_OPTS] = { }, { .name = "stonewall", + .alias = "wait_for_previous", .type = FIO_OPT_STR_SET, .off1 = td_var_offset(stonewall), .help = "Insert a hard barrier between this job and previous", -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html