Usleep feature added according to Nathan's suggestions.

master
Julian M. Kunkel 2018-09-30 10:01:21 +01:00
parent 0a103147ab
commit 1f1e56c363
4 changed files with 11 additions and 0 deletions

View File

@ -170,6 +170,8 @@ GENERAL:
NOTE: it does not delay before a check write or NOTE: it does not delay before a check write or
check read 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 * outlierThreshold - gives warning if any task is more than this number
of seconds from the mean of all participating tasks. of seconds from the mean of all participating tasks.
If so, the task is identified, its time (start, If so, the task is identified, its time (start,

View File

@ -1839,11 +1839,17 @@ static IOR_offset_t WriteOrReadSingle(IOR_offset_t pairCnt, IOR_offset_t *offset
backend->xfer(access, fd, buffer, transfer, test); backend->xfer(access, fd, buffer, transfer, test);
if (amtXferred != transfer) if (amtXferred != transfer)
ERR("cannot write to file"); ERR("cannot write to file");
if (test->interIODelay > 0){
usleep(test->interIODelay);
}
} else if (access == READ) { } else if (access == READ) {
amtXferred = amtXferred =
backend->xfer(access, fd, buffer, transfer, test); backend->xfer(access, fd, buffer, transfer, test);
if (amtXferred != transfer) if (amtXferred != transfer)
ERR("cannot read from file"); ERR("cannot read from file");
if (test->interIODelay > 0){
usleep(test->interIODelay);
}
} else if (access == WRITECHECK) { } else if (access == WRITECHECK) {
memset(checkBuffer, 'a', transfer); memset(checkBuffer, 'a', transfer);

View File

@ -100,6 +100,7 @@ typedef struct
int repCounter; /* rep counter */ int repCounter; /* rep counter */
int multiFile; /* multiple files */ int multiFile; /* multiple files */
int interTestDelay; /* delay between reps in seconds */ int interTestDelay; /* delay between reps in seconds */
int interIODelay; /* delay after each I/O in us */
int open; /* flag for writing or reading */ int open; /* flag for writing or reading */
int readFile; /* read of existing file */ int readFile; /* read of existing file */
int writeFile; /* write of file */ int writeFile; /* write of file */

View File

@ -167,6 +167,8 @@ void DecodeDirective(char *line, IOR_param_t *params)
params->repetitions = atoi(value); params->repetitions = atoi(value);
} else if (strcasecmp(option, "intertestdelay") == 0) { } else if (strcasecmp(option, "intertestdelay") == 0) {
params->interTestDelay = atoi(value); params->interTestDelay = atoi(value);
} else if (strcasecmp(option, "interiodelay") == 0) {
params->interIODelay = atoi(value);
} else if (strcasecmp(option, "readfile") == 0) { } else if (strcasecmp(option, "readfile") == 0) {
params->readFile = atoi(value); params->readFile = atoi(value);
} else if (strcasecmp(option, "writefile") == 0) { } else if (strcasecmp(option, "writefile") == 0) {