Remove undocumented options.

master
Christopher J. Morrone 2012-01-08 11:56:32 -08:00
parent 84d30f4e8f
commit 349f747ea5
8 changed files with 7 additions and 254 deletions

View File

@ -1 +1 @@
data_DATA = USER_GUIDE UNDOCUMENTED_OPTIONS
data_DATA = USER_GUIDE

View File

@ -1,36 +0,0 @@
To use these options, modify USE_UNDOC_OPT=TRUE in iordef.h and then recompile.
For passing arguments to the executable for these options, use this format:
'-O option1=1,option2=0'
Options:
* fillTheFileSystem -- limits unnecessary output for showing performance, etc.
The command line '-w -k -m -i 123 -F -O fillTheFileSystem=5' has each task
creating (and keeping) 123 files, showing the time between every fifth file.
* includeDeleteTime -- use with '-O includeDeleteTime=1' to have time to
delete file included in write performance time. Note that if this file
is deleted after the write, there's nothing available for the read back
or checking.
* multiReRead -- use with '-i 5 -v -k -w -W -O multiReRead=1' to have 1 write
of file, followed by 4 reads w/data checking.
* NFS_serverCount -- use with other NFS_* options, -F, and -o to write/read
files across multiple NFS servers. Set the server count to > 0 to enable.
The format is: 'NFS_rootPath/NFS_serverName[0..NFS_serverCount-1]/outFile'.
Each file is written round-robin to a different NFS server.
* NFS_rootPath -- use with NFS_server* options for path to NFS servers.
* NFS_serverName -- ise with NFS_* options for NFS server prefix. Specific
NFS server number is appended to this name, e.g. nfs123.
* corruptFile -- corrupts file after writing for determining data-checking
reliability.
Note:
* cbif.c (Change Byte In File) is a simple utility to check the value of
a file offset; also allows changing a single byte at an offset.

115
src/ior.c
View File

@ -673,11 +673,6 @@ static void DisplayFreespace(IOR_param_t * test)
if (directoryFound == FALSE) {
strcpy(fileName, ".");
}
#if USE_UNDOC_OPT /* NFS */
if (test->NFS_serverCount) {
strcpy(fileName, test->NFS_rootPath);
}
#endif /* USE_UNDOC_OPT - NFS */
ShowFileSystemSize(fileName);
@ -919,15 +914,6 @@ static void GetTestFileName(char *testFileName, IOR_param_t * test)
strcpy(testFileNameRoot,
PrependDir(test, testFileNameRoot));
}
#if USE_UNDOC_OPT /* NFS */
if (test->NFS_serverCount) {
sprintf(tmpString, "%s/%s%d/%s", test->NFS_rootPath,
test->NFS_serverName,
rank % (test->NFS_serverCount),
testFileNameRoot);
strcpy(testFileNameRoot, tmpString);
}
#endif /* USE_UNDOC_OPT - NFS */
sprintf(testFileName, "%s.%08d", testFileNameRoot,
(rank + rankOffset) % test->numTasks);
} else {
@ -1194,13 +1180,6 @@ ReadCheck(void *fd,
if (*amtXferred != transfer)
ERR("cannot read from file on read check");
memset(checkBuffer, 'a', transfer); /* empty buffer */
#if USE_UNDOC_OPT /* corruptFile */
MPI_CHECK(MPI_Barrier(testComm), "barrier error");
/* intentionally corrupt file to determine if check works */
if (params->corruptFile) {
CorruptFile(params->testFileName, params, 0, READCHECK);
}
#endif /* USE_UNDOC_OPT - corruptFile */
MPI_CHECK(MPI_Barrier(testComm), "barrier error");
if (params->filePerProc) {
*amtXferred = backend->xfer(access, params->fd_fppReadCheck,
@ -1278,16 +1257,7 @@ static void ReduceIterResults(IOR_test_t *test, double **timer, int rep,
diff_subset = &diff[3];
}
#if USE_UNDOC_OPT /* fillTheFileSystem */
if (test->params.fillTheFileSystem && rep == 0 && verbose >= VERBOSE_1) {
fprintf(stdout, " . . . skipping iteration results output . . .\n");
fflush(stdout);
}
if (verbose < VERBOSE_0 || test->params.fillTheFileSystem) {
#else
if (verbose < VERBOSE_0) {
#endif
return;
}
@ -1451,12 +1421,6 @@ static void ShowTestInfo(IOR_param_t *params)
fprintf(stdout, "\n");
fprintf(stdout, "Test %d started: %s", params->id, CurrentTimeString());
#if USE_UNDOC_OPT /* NFS */
if (params->NFS_serverCount) {
fprintf(stdout, "NFS path: %s%s[0..%d]\n", params->NFS_rootPath,
params->NFS_serverName, params->NFS_serverCount - 1);
}
#endif /* USE_UNDOC_OPT - NFS */
if (verbose >= VERBOSE_1) {
/* if pvfs2:, then skip */
if (Regex(params->testFileName, "^[a-z][a-z].*:") == 0) {
@ -1952,12 +1916,6 @@ static void TestIoSys(IOR_test_t *test)
startTime = GetTimeStamp();
maxTimeDuration = params->maxTimeDuration * 60; /* convert to seconds */
#if USE_UNDOC_OPT /* fillTheFileSystem */
if (rank == 0 && params->fillTheFileSystem && verbose >= VERBOSE_0) {
fprintf(stdout, "Run started: %s", CurrentTimeString());
}
#endif /* USE_UNDOC_OPT - fillTheFileSystem */
/* loop over test iterations */
for (rep = 0; rep < params->repetitions; rep++) {
@ -1990,17 +1948,6 @@ static void TestIoSys(IOR_test_t *test)
MPI_CHECK(MPI_Bcast
(&params->timeStampSignatureValue, 1, MPI_UNSIGNED, 0,
testComm), "cannot broadcast start time value");
#if USE_UNDOC_OPT /* fillTheFileSystem */
if (params->fillTheFileSystem && rep > 0
&& rep % (params->fillTheFileSystem / params->numTasks) == 0) {
if (rank == 0 && verbose >= VERBOSE_0) {
fprintf(stdout, "at file #%d, time: %s",
rep * params->numTasks,
CurrentTimeString());
fflush(stdout);
}
}
#endif /* USE_UNDOC_OPT - fillTheFileSystem */
/* use repetition count for number of multiple files */
if (params->multiFile)
params->repCounter = rep;
@ -2010,9 +1957,6 @@ static void TestIoSys(IOR_test_t *test)
*/
if (params->writeFile
#if USE_UNDOC_OPT /* multiReRead */
&& (!params->multiReRead || !rep)
#endif /* USE_UNDOC_OPT - multiReRead */
&& (maxTimeDuration
? (GetTimeStamp() - startTime < maxTimeDuration) : 1)) {
GetTestFileName(testFileName, params);
@ -2047,46 +1991,16 @@ static void TestIoSys(IOR_test_t *test)
timer[4][rep] = GetTimeStamp();
backend->close(fd, params);
#if USE_UNDOC_OPT /* includeDeleteTime */
if (params->includeDeleteTime) {
if (rank == 0 && verbose >= VERBOSE_1) {
fprintf(stdout,
"** including delete time **\n");
}
MPI_CHECK(MPI_Barrier(testComm),
"barrier error");
RemoveFile(testFileName, params->filePerProc,
params);
}
#endif /* USE_UNDOC_OPT - includeDeleteTime */
timer[5][rep] = GetTimeStamp();
MPI_CHECK(MPI_Barrier(testComm), "barrier error");
#if USE_UNDOC_OPT /* includeDeleteTime */
if (params->includeDeleteTime) {
/* not accurate, but no longer a test file to examine */
results->aggFileSizeFromStat[rep] =
params->expectedAggFileSize;
results->aggFileSizeFromXfer[rep] =
params->expectedAggFileSize;
results->aggFileSizeForBW[rep] =
params->expectedAggFileSize;
} else {
#endif /* USE_UNDOC_OPT - includeDeleteTime */
/* get the size of the file just written */
results->aggFileSizeFromStat[rep] =
backend->get_file_size(params, testComm, testFileName);
/* get the size of the file just written */
results->aggFileSizeFromStat[rep]
= backend->get_file_size(params, testComm,
testFileName);
/* check if stat() of file doesn't equal expected file size,
use actual amount of byte moved */
CheckFileSize(test, dataMoved, rep);
#if USE_UNDOC_OPT /* includeDeleteTime */
}
#endif /* USE_UNDOC_OPT - includeDeleteTime */
/* check if stat() of file doesn't equal expected file size,
use actual amount of byte moved */
CheckFileSize(test, dataMoved, rep);
if (verbose >= VERBOSE_3)
WriteTimes(params, timer, rep, WRITE);
@ -2101,19 +2015,8 @@ static void TestIoSys(IOR_test_t *test)
* against what was expected to be written
*/
if (params->checkWrite
#if USE_UNDOC_OPT /* multiReRead */
&& (!params->multiReRead || rep)
#endif /* USE_UNDOC_OPT - multiReRead */
&& (maxTimeDuration
? (GetTimeStamp() - startTime < maxTimeDuration) : 1)) {
#if USE_UNDOC_OPT /* corruptFile */
MPI_CHECK(MPI_Barrier(testComm), "barrier error");
/* intentionally corrupt file to determine if check works */
if (params->corruptFile) {
CorruptFile(testFileName, params, rep,
WRITECHECK);
}
#endif /* USE_UNDOC_OPT - corruptFile */
MPI_CHECK(MPI_Barrier(testComm), "barrier error");
if (rank == 0 && verbose >= VERBOSE_1) {
fprintf(stdout,
@ -2276,12 +2179,6 @@ static void TestIoSys(IOR_test_t *test)
rankOffset = 0;
}
#if USE_UNDOC_OPT /* fillTheFileSystem */
if (rank == 0 && params->fillTheFileSystem && verbose >= VERBOSE_0) {
fprintf(stdout, "Run ended: %s", CurrentTimeString());
}
#endif /* USE_UNDOC_OPT - fillTheFileSystem */
MPI_CHECK(MPI_Comm_free(&testComm), "MPI_Comm_free() error");
PrintShortSummary(test);

View File

@ -122,18 +122,6 @@ typedef struct
int lustre_set_striping; /* flag that we need to set lustre striping */
int lustre_ignore_locks;
#if USE_UNDOC_OPT
int corruptFile;
int fillTheFileSystem;
int includeDeleteTime;
int multiReRead;
/* NFS variables */
char NFS_rootPath[MAXPATHLEN]; /* absolute path to NFS servers */
char NFS_serverName[MAXPATHLEN]; /* prefix for NFS server name */
int NFS_serverCount; /* number of NFS servers to be used */
#endif /* USE_UNDOC_OPT */
int id; /* test's unique ID */
int intraTestBarriers; /* barriers between open/op and op/close */
} IOR_param_t;

View File

@ -113,9 +113,6 @@ extern int verbose; /* verbose output */
#define HERE fprintf(stdout, "** LINE %d (TASK=%d) **\n", \
__LINE__, rank);
/* Other MACROs */
#define USE_UNDOC_OPT TRUE /* USE UNDOCumented OPTion */
typedef long long int IOR_offset_t;
typedef long long int IOR_size_t;

View File

@ -256,22 +256,6 @@ void DecodeDirective(char *line, IOR_param_t *params)
ERR("ior was not compiled with Lustre support");
#endif
params->lustre_ignore_locks = atoi(value);
#if USE_UNDOC_OPT
} else if (strcasecmp(option, "corruptFile") == 0) {
params->corruptFile = atoi(value);
} else if (strcasecmp(option, "fillTheFileSystem") == 0) {
params->fillTheFileSystem = atoi(value);
} else if (strcasecmp(option, "includeDeleteTime") == 0) {
params->includeDeleteTime = atoi(value);
} else if (strcasecmp(option, "multiReRead") == 0) {
params->multiReRead = atoi(value);
} else if (strcasecmp(option, "nfs_rootpath") == 0) {
strcpy(params->NFS_rootPath, value);
} else if (strcasecmp(option, "nfs_servername") == 0) {
strcpy(params->NFS_serverName, value);
} else if (strcasecmp(option, "nfs_servercount") == 0) {
params->NFS_serverCount = atoi(value);
#endif /* USE_UNDOC_OPT */
} else if (strcasecmp(option, "numtasks") == 0) {
params->numTasks = atoi(value);
RecalculateExpectedFileSize(params);

View File

@ -386,80 +386,6 @@ int Regex(char *string, char *pattern)
return (retValue);
}
#if USE_UNDOC_OPT /* corruptFile */
/*
* Modify byte in file - used to testing write/read data checking.
*/
static void ModifyByteInFile(char *fileName, IOR_offset_t offset, int byteValue)
{
int fd;
int rc;
char old;
char new;
new = (char)byteValue;
/* open file, show old value, update to new value */
fd = open(fileName, O_RDWR);
rc = lseek(fd, offset, SEEK_SET);
if (rc == -1)
goto out;
rc = read(fd, &old, 1);
if (rc == -1)
goto out;
rc = lseek(fd, offset, SEEK_SET);
if (rc == -1)
goto out;
rc = write(fd, &new, 1);
if (rc == -1)
goto out;
fprintf(stdout,
"** DEBUG: offset %lld in %s changed from %d to %d **\n",
offset, fileName, (unsigned char)old, (unsigned char)new);
out:
close(fd);
return;
}
/*
* Corrupt file to testing data checking options.
*/
void CorruptFile(char *testFileName, IOR_param_t *params, int rep, int access)
{
IOR_offset_t tmpOff, range, eof;
char fileName[MAX_STR];
/* determine file name */
strcpy(fileName, testFileName);
if (access == READCHECK && params->filePerProc) {
strcpy(fileName, params->testFileName_fppReadCheck);
}
/* determine offset to modify */
SeedRandGen(params->testComm);
eof = params->expectedAggFileSize
/ (params->filePerProc ? params->numTasks : 1);
if (access == WRITECHECK) {
range = eof - params->offset;
} else { /* READCHECK */
range = params->transferSize;
}
tmpOff =
(IOR_offset_t) ((rand() / (float)RAND_MAX) * range) + params->offset;
if (tmpOff >= eof)
tmpOff = tmpOff / 2;
/* corrupt <fileName> at <offset> with <value> */
if (rank == 0 || params->filePerProc) {
ModifyByteInFile(fileName, tmpOff, 121);
}
return;
}
#endif /* USE_UNDOC_OPT - corruptFile */
/*
* Seed random generator.
*/

View File

@ -22,9 +22,6 @@ int Regex(char *, char *);
void ShowFileSystemSize(char *);
void DumpBuffer(void *, size_t);
void SeedRandGen(MPI_Comm);
#if USE_UNDOC_OPT
void CorruptFile(char *, IOR_param_t *, int, int);
#endif
void SetHints (MPI_Info *, char *);
void ShowHints (MPI_Info *);