diff --git a/doc/USER_GUIDE b/doc/USER_GUIDE index 7ea6e49..6a6cf18 100755 --- a/doc/USER_GUIDE +++ b/doc/USER_GUIDE @@ -170,6 +170,8 @@ GENERAL: NOTE: it does not delay before a check write or check read + * interIODelay - this time in us (microseconds) after each I/O simulates computing time. + * outlierThreshold - gives warning if any task is more than this number of seconds from the mean of all participating tasks. If so, the task is identified, its time (start, diff --git a/src/ior.c b/src/ior.c index e8c477f..9a72080 100755 --- a/src/ior.c +++ b/src/ior.c @@ -1839,11 +1839,17 @@ static IOR_offset_t WriteOrReadSingle(IOR_offset_t pairCnt, IOR_offset_t *offset backend->xfer(access, fd, buffer, transfer, test); if (amtXferred != transfer) ERR("cannot write to file"); + if (test->interIODelay > 0){ + usleep(test->interIODelay); + } } else if (access == READ) { amtXferred = backend->xfer(access, fd, buffer, transfer, test); if (amtXferred != transfer) ERR("cannot read from file"); + if (test->interIODelay > 0){ + usleep(test->interIODelay); + } } else if (access == WRITECHECK) { memset(checkBuffer, 'a', transfer); diff --git a/src/ior.h b/src/ior.h index e76a64d..5672c9c 100755 --- a/src/ior.h +++ b/src/ior.h @@ -100,6 +100,7 @@ typedef struct int repCounter; /* rep counter */ int multiFile; /* multiple files */ int interTestDelay; /* delay between reps in seconds */ + int interIODelay; /* delay after each I/O in us */ int open; /* flag for writing or reading */ int readFile; /* read of existing file */ int writeFile; /* write of file */ diff --git a/src/parse_options.c b/src/parse_options.c index 74038fa..be6b732 100755 --- a/src/parse_options.c +++ b/src/parse_options.c @@ -167,6 +167,8 @@ void DecodeDirective(char *line, IOR_param_t *params) params->repetitions = atoi(value); } else if (strcasecmp(option, "intertestdelay") == 0) { params->interTestDelay = atoi(value); + } else if (strcasecmp(option, "interiodelay") == 0) { + params->interIODelay = atoi(value); } else if (strcasecmp(option, "readfile") == 0) { params->readFile = atoi(value); } else if (strcasecmp(option, "writefile") == 0) {