projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Run the gluster engines through indent
[fio.git]
/
backend.c
diff --git
a/backend.c
b/backend.c
index e0f8aa76f584dc8f978c1f2649fae5292f563718..d1d55718b32ecb76009c6adc3484decee2f3a626 100644
(file)
--- a/
backend.c
+++ b/
backend.c
@@
-780,16
+780,21
@@
static uint64_t do_io(struct thread_data *td)
case FIO_Q_COMPLETED:
if (io_u->error) {
ret = -io_u->error;
case FIO_Q_COMPLETED:
if (io_u->error) {
ret = -io_u->error;
+ unlog_io_piece(td, io_u);
clear_io_u(td, io_u);
} else if (io_u->resid) {
int bytes = io_u->xfer_buflen - io_u->resid;
struct fio_file *f = io_u->file;
bytes_issued += bytes;
clear_io_u(td, io_u);
} else if (io_u->resid) {
int bytes = io_u->xfer_buflen - io_u->resid;
struct fio_file *f = io_u->file;
bytes_issued += bytes;
+
+ trim_io_piece(td, io_u);
+
/*
* zero read, fail
*/
if (!bytes) {
/*
* zero read, fail
*/
if (!bytes) {
+ unlog_io_piece(td, io_u);
td_verror(td, EIO, "full resid");
put_io_u(td, io_u);
break;
td_verror(td, EIO, "full resid");
put_io_u(td, io_u);
break;
@@
-830,6
+835,7
@@
sync_done:
bytes_issued += io_u->xfer_buflen;
break;
case FIO_Q_BUSY:
bytes_issued += io_u->xfer_buflen;
break;
case FIO_Q_BUSY:
+ unlog_io_piece(td, io_u);
requeue_io_u(td, &io_u);
ret2 = td_io_commit(td);
if (ret2 < 0)
requeue_io_u(td, &io_u);
ret2 = td_io_commit(td);
if (ret2 < 0)
@@
-1339,6
+1345,7
@@
static void *thread_main(void *data)
#ifdef CONFIG_LIBNUMA
/* numa node setup */
if (o->numa_cpumask_set || o->numa_memmask_set) {
#ifdef CONFIG_LIBNUMA
/* numa node setup */
if (o->numa_cpumask_set || o->numa_memmask_set) {
+ struct bitmask *mask;
int ret;
if (numa_available() < 0) {
int ret;
if (numa_available() < 0) {
@@
-1347,7
+1354,9
@@
static void *thread_main(void *data)
}
if (o->numa_cpumask_set) {
}
if (o->numa_cpumask_set) {
- ret = numa_run_on_node_mask(o->numa_cpunodesmask);
+ mask = numa_parse_nodestring(o->numa_cpunodes);
+ ret = numa_run_on_node_mask(mask);
+ numa_free_nodemask(mask);
if (ret == -1) {
td_verror(td, errno, \
"numa_run_on_node_mask failed\n");
if (ret == -1) {
td_verror(td, errno, \
"numa_run_on_node_mask failed\n");
@@
-1357,12
+1366,16
@@
static void *thread_main(void *data)
if (o->numa_memmask_set) {
if (o->numa_memmask_set) {
+ mask = NULL;
+ if (o->numa_memnodes)
+ mask = numa_parse_nodestring(o->numa_memnodes);
+
switch (o->numa_mem_mode) {
case MPOL_INTERLEAVE:
switch (o->numa_mem_mode) {
case MPOL_INTERLEAVE:
- numa_set_interleave_mask(
o->numa_memnodes
mask);
+ numa_set_interleave_mask(mask);
break;
case MPOL_BIND:
break;
case MPOL_BIND:
- numa_set_membind(
o->numa_memnodes
mask);
+ numa_set_membind(mask);
break;
case MPOL_LOCAL:
numa_set_localalloc();
break;
case MPOL_LOCAL:
numa_set_localalloc();
@@
-1375,6
+1388,9
@@
static void *thread_main(void *data)
break;
}
break;
}
+ if (mask)
+ numa_free_nodemask(mask);
+
}
}
#endif
}
}
#endif