Go to the source code of this file.
◆ _NUM_STATS
◆ _STAT_ACCESS
◆ _STAT_CHMOD
◆ _STAT_CLOSE
◆ _STAT_CREATE
◆ _STAT_DELETE
◆ _STAT_DIR_CREATE
| #define _STAT_DIR_CREATE 10 |
◆ _STAT_DIR_DELETE
| #define _STAT_DIR_DELETE 11 |
◆ _STAT_DIR_TRAVERSE
| #define _STAT_DIR_TRAVERSE 14 |
◆ _STAT_LINK
◆ _STAT_OPEN
◆ _STAT_READ
◆ _STAT_READDIR
◆ _STAT_STAT
◆ _STAT_UNLINK
◆ _STAT_WRITE
◆ PATH_MAX
◆ THISVERSION
| #define THISVERSION " $Revision$" |
◆ bzero()
◆ clear_stats()
Definition at line 1366 of file fileop.c.
struct stat_struct stats[_NUM_STATS]
◆ dir_create()
Definition at line 594 of file fileop.c.
603 sprintf(
buf,
"fileop_L1_%d",
i);
608 printf(
"Mkdir failed\n");
624 sprintf(
buf,
"fileop_L1_%d_L2_%d",
i,j);
629 printf(
"Mkdir failed\n");
645 sprintf(
buf,
"fileop_dir_%d_%d_%d",
i,j,k);
650 printf(
"Mkdir failed\n");
struct stat_struct stats[_NUM_STATS]
static double time_so_far(void)
volatile int buf[CACHE_FLUSH_BUFFER_SIZE_INTS]
◆ dir_delete()
Definition at line 1099 of file fileop.c.
1107 sprintf(
buf,
"fileop_L1_%d",
i);
1111 sprintf(
buf,
"fileop_L1_%d_L2_%d",
i,j);
1115 sprintf(
buf,
"fileop_dir_%d_%d_%d",
i,j,k);
1132 sprintf(
buf,
"fileop_L1_%d_L2_%d",
i,j);
1147 sprintf(
buf,
"fileop_L1_%d",
i);
struct stat_struct stats[_NUM_STATS]
static double time_so_far(void)
volatile int buf[CACHE_FLUSH_BUFFER_SIZE_INTS]
◆ dir_traverse()
| void dir_traverse |
( |
int |
x | ) |
|
Definition at line 673 of file fileop.c.
682 sprintf(
buf,
"fileop_L1_%d",
i);
689 sprintf(
buf,
"fileop_L1_%d_L2_%d",
i,j);
696 sprintf(
buf,
"fileop_dir_%d_%d_%d",
i,j,k);
#define _STAT_DIR_TRAVERSE
struct stat_struct stats[_NUM_STATS]
static double time_so_far(void)
volatile int buf[CACHE_FLUSH_BUFFER_SIZE_INTS]
◆ file_access()
| void file_access |
( |
int |
x | ) |
|
Definition at line 873 of file fileop.c.
881 sprintf(
buf,
"fileop_L1_%d",
i);
885 sprintf(
buf,
"fileop_L1_%d_L2_%d",
i,j);
889 sprintf(
buf,
"fileop_file_%d_%d_%d",
i,j,k);
891 y=access(
buf,W_OK|F_OK);
894 printf(
"access failed\n");
struct stat_struct stats[_NUM_STATS]
static double time_so_far(void)
volatile int buf[CACHE_FLUSH_BUFFER_SIZE_INTS]
◆ file_chmod()
Definition at line 916 of file fileop.c.
924 sprintf(
buf,
"fileop_L1_%d",
i);
928 sprintf(
buf,
"fileop_L1_%d_L2_%d",
i,j);
932 sprintf(
buf,
"fileop_file_%d_%d_%d",
i,j,k);
937 printf(
"chmod failed\n");
struct stat_struct stats[_NUM_STATS]
static double time_so_far(void)
volatile int buf[CACHE_FLUSH_BUFFER_SIZE_INTS]
◆ file_create()
| void file_create |
( |
int |
x | ) |
|
Definition at line 740 of file fileop.c.
755 sprintf(
buf,
"fileop_L1_%d",
i);
759 printf(
"Mkdir failed\n");
765 sprintf(
buf,
"fileop_L1_%d_L2_%d",
i,j);
769 printf(
"Mkdir failed\n");
775 sprintf(
buf,
"fileop_file_%d_%d_%d",
i,j,k);
776 value=(char) ((
i^j^k) & 0xff);
779 fd=creat(
buf,O_RDWR|0600);
782 printf(
"Create failed\n");
struct stat_struct stats[_NUM_STATS]
ssize_t write(int fd, const void *buf, size_t count)
static double time_so_far(void)
volatile int buf[CACHE_FLUSH_BUFFER_SIZE_INTS]
◆ file_delete()
| void file_delete |
( |
int |
x | ) |
|
Definition at line 1164 of file fileop.c.
1172 sprintf(
buf,
"fileop_L1_%d",
i);
1176 sprintf(
buf,
"fileop_L1_%d_L2_%d",
i,j);
1180 sprintf(
buf,
"fileop_file_%d_%d_%d",
i,j,k);
1195 sprintf(
buf,
"fileop_L1_%d_L2_%d",
i,j);
1199 sprintf(
buf,
"fileop_L1_%d",
i);
struct stat_struct stats[_NUM_STATS]
static double time_so_far(void)
volatile int buf[CACHE_FLUSH_BUFFER_SIZE_INTS]
◆ file_link()
Definition at line 1011 of file fileop.c.
1020 sprintf(
buf,
"fileop_L1_%d",
i);
1024 sprintf(
buf,
"fileop_L1_%d_L2_%d",
i,j);
1028 sprintf(
buf,
"fileop_file_%d_%d_%d",
i,j,k);
1029 sprintf(bufn,
"fileop_file_%d_%d_%dL",
i,j,k);
1034 printf(
"Link failed\n");
struct stat_struct stats[_NUM_STATS]
static double time_so_far(void)
volatile int buf[CACHE_FLUSH_BUFFER_SIZE_INTS]
◆ file_read()
Definition at line 1204 of file fileop.c.
1215 sprintf(
buf,
"fileop_L1_%d",
i);
1219 sprintf(
buf,
"fileop_L1_%d_L2_%d",
i,j);
1223 sprintf(
buf,
"fileop_file_%d_%d_%d",
i,j,k);
1224 value=(char)((
i^j^k) &0xff);
1229 printf(
"Open failed\n");
1247 printf(
"Read failed\n");
1251 printf(
"Error: Data Mis-compare\n");;
ssize_t read(int fd, void *buf, size_t count)
struct stat_struct stats[_NUM_STATS]
int open(const char *pathname, int flags, mode_t mode)
int validate(char *, int, char)
static double time_so_far(void)
volatile int buf[CACHE_FLUSH_BUFFER_SIZE_INTS]
◆ file_readdir()
| void file_readdir |
( |
int |
x | ) |
|
Definition at line 959 of file fileop.c.
969 sprintf(
buf,
"fileop_L1_%d",
i);
973 sprintf(
buf,
"fileop_L1_%d_L2_%d",
i,j);
978 printf(
"opendir failed\n");
985 printf(
"readdir failed\n");
998 ret1=closedir(dirbuf);
1001 printf(
"closedir failed\n");
struct stat_struct stats[_NUM_STATS]
static double time_so_far(void)
volatile int buf[CACHE_FLUSH_BUFFER_SIZE_INTS]
◆ file_stat()
Definition at line 830 of file fileop.c.
839 sprintf(
buf,
"fileop_L1_%d",
i);
843 sprintf(
buf,
"fileop_L1_%d_L2_%d",
i,j);
847 sprintf(
buf,
"fileop_file_%d_%d_%d",
i,j,k);
852 printf(
"Stat failed\n");
struct stat_struct stats[_NUM_STATS]
static double time_so_far(void)
volatile int buf[CACHE_FLUSH_BUFFER_SIZE_INTS]
◆ file_unlink()
| void file_unlink |
( |
int |
x | ) |
|
Definition at line 1055 of file fileop.c.
1064 sprintf(
buf,
"fileop_L1_%d",
i);
1068 sprintf(
buf,
"fileop_L1_%d_L2_%d",
i,j);
1072 sprintf(
buf,
"fileop_file_%d_%d_%d",
i,j,k);
1073 sprintf(bufn,
"fileop_file_%d_%d_%dL",
i,j,k);
1078 printf(
"Unlink failed\n");
struct stat_struct stats[_NUM_STATS]
static double time_so_far(void)
volatile int buf[CACHE_FLUSH_BUFFER_SIZE_INTS]
◆ main()
| int main |
( |
int |
argc, |
|
|
char ** |
argv |
|
) |
| |
Definition at line 176 of file fileop.c.
183 while((
cret = getopt(argc,argv,
"hbwetvf:s:l:u:d:U:i: ")) != EOF){
255 printf(
"\nFileop: Working in %s, File size is %d, Output is in Ops/sec. (A=Avg, B=Best, W=Worst)\n",
thedir,
sz);
259 printf(
" . %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s %10s\n",
260 "mkdir",
"chdir",
"rmdir",
"create",
"open",
"read",
"write",
"close",
"stat",
261 "access",
"chmod",
"readdir",
"delete",
" Total_files");
264 printf(
" . %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s %10s\n",
265 "mkdir",
"chdir",
"rmdir",
"create",
"open",
"read",
"write",
"close",
"stat",
266 "access",
"chmod",
"readdir",
"link ",
"unlink",
"delete",
289 printf(
" Avg mkdir(s)/sec = %12.2f (%12.9f seconds/op)\n",
306 printf(
" Avg chdir(s)/sec = %12.2f (%12.9f seconds/op)\n",
323 printf(
" Avg rmdir(s)/sec = %12.2f (%12.9f seconds/op)\n",
339 printf(
" Avg create(s)/sec = %12.2f (%12.9f seconds/op)\n",
342 printf(
" Best create(s)/sec = %12.2f (%12.9f seconds/op)\n",
344 printf(
" Worst create(s)/sec = %12.2f (%12.9f seconds/op)\n\n",
348 printf(
" Avg write(s)/sec = %12.2f (%12.9f seconds/op)\n",
351 printf(
" Best write(s)/sec = %12.2f (%12.9f seconds/op)\n",
353 printf(
" Worst write(s)/sec = %12.2f (%12.9f seconds/op)\n\n",
357 printf(
" Avg close(s)/sec = %12.2f (%12.9f seconds/op)\n",
360 printf(
" Best close(s)/sec = %12.2f (%12.9f seconds/op)\n",
362 printf(
" Worst close(s)/sec = %12.2f (%12.9f seconds/op)\n\n",
376 printf(
" Avg stat(s)/sec = %12.2f (%12.9f seconds/op)\n",
379 printf(
" Best stat(s)/sec = %12.2f (%12.9f seconds/op)\n",
381 printf(
" Worst stat(s)/sec = %12.2f (%12.9f seconds/op)\n\n",
394 printf(
" Avg open(s)/sec = %12.2f (%12.9f seconds/op)\n",
397 printf(
" Best open(s)/sec = %12.2f (%12.9f seconds/op)\n",
399 printf(
" Worst open(s)/sec = %12.2f (%12.9f seconds/op)\n\n",
404 printf(
" Avg read(s)/sec = %12.2f (%12.9f seconds/op)\n",
407 printf(
" Best read(s)/sec = %12.2f (%12.9f seconds/op)\n",
409 printf(
" Worst read(s)/sec = %12.2f (%12.9f seconds/op)\n\n",
422 printf(
" Avg access(s)/sec = %12.2f (%12.9f seconds/op)\n",
425 printf(
" Best access(s)/sec = %12.2f (%12.9f seconds/op)\n",
427 printf(
" Worst access(s)/sec = %12.2f (%12.9f seconds/op)\n\n",
440 printf(
" Avg chmod(s)/sec = %12.2f (%12.9f seconds/op)\n",
443 printf(
" Best chmod(s)/sec = %12.2f (%12.9f seconds/op)\n",
445 printf(
" Worst chmod(s)/sec = %12.2f (%12.9f seconds/op)\n\n",
458 printf(
" Avg readdir(s)/sec = %12.2f (%12.9f seconds/op)\n",
461 printf(
" Best readdir(s)/sec = %12.2f (%12.9f seconds/op)\n",
463 printf(
" Worst readdir(s)/sec = %12.2f (%12.9f seconds/op)\n\n",
466 #if !defined(Windows) 476 printf(
" Avg link(s)/sec = %12.2f (%12.9f seconds/op)\n",
479 printf(
" Best link(s)/sec = %12.2f (%12.9f seconds/op)\n",
481 printf(
" Worst link(s)/sec = %12.2f (%12.9f seconds/op)\n\n",
493 printf(
" Avg unlink(s)/sec = %12.2f (%12.9f seconds/op)\n",
496 printf(
" Best unlink(s)/sec = %12.2f (%12.9f seconds/op)\n",
498 printf(
" Worst unlink(s)/sec = %12.2f (%12.9f seconds/op)\n\n",
511 printf(
" Avg delete(s)/sec = %12.2f (%12.9f seconds/op)\n",
514 printf(
" Best delete(s)/sec = %12.2f (%12.9f seconds/op)\n",
516 printf(
" Worst delete(s)/sec = %12.2f (%12.9f seconds/op)\n\n",
538 printf(
"%10d ",
x*
x*
x);
561 printf(
"%10d ",
x*
x*
x);
584 printf(
"%10d ",
x*
x*
x);
#define _STAT_DIR_TRAVERSE
struct stat_struct stats[_NUM_STATS]
void purge_buffer_cache()
◆ purge_buffer_cache()
| void purge_buffer_cache |
( |
| ) |
|
Definition at line 147 of file fileop.c.
156 junkp=(
int *)getcwd(cwd,
sizeof(cwd));
158 strcpy(command,
"umount ");
164 for (
i = 1;
i < 10; ++
i) {
170 strcpy(command,
"mount ");
◆ splash()
Definition at line 1315 of file fileop.c.
1318 printf(
" --------------------------------------\n");
1319 printf(
" | Fileop | \n");
1322 printf(
" | by |\n");
1324 printf(
" | Don Capps |\n");
1325 printf(
" --------------------------------------\n");
◆ time_so_far()
| static double time_so_far |
( |
void |
| ) |
|
|
static |
Definition at line 1279 of file fileop.c.
1283 LARGE_INTEGER freq,counter;
1284 double wintime,bigcounter;
1289 QueryPerformanceFrequency(&freq);
1290 QueryPerformanceCounter(&counter);
1291 bigcounter=(double)counter.HighPart *(
double)0xffffffff +
1292 (double)counter.LowPart;
1293 wintime = (
double)(bigcounter/(double)freq.LowPart);
1294 return((
double)wintime);
1296 #if defined (OSFV4) || defined(OSFV3) || defined(OSFV5) 1299 if (getclock(TIMEOFDAY, (
struct timespec *) &gp) == -1)
1301 return (( (
double) (gp.tv_sec)) +
1302 ( ((
float)(gp.tv_nsec)) * 0.000000001 ));
1307 perror(
"gettimeofday");
1308 return ((
double) (tp.tv_sec)) +
1309 (((double) tp.tv_usec) * 0.000001 );
int gettimeofday(void *ptr1, void *ptr2)
◆ usage()
Definition at line 1330 of file fileop.c.
1333 printf(
" fileop [-f X ]|[-l # -u #] [-s Y] [-e] [-b] [-w] [-d <dir>] [-t] [-v] [-h]\n");
1335 printf(
" -f # Force factor. X^3 files will be created and removed.\n");
1336 printf(
" -l # Lower limit on the value of the Force factor.\n");
1337 printf(
" -u # Upper limit on the value of the Force factor.\n");
1338 printf(
" -s # Optional. Sets filesize for the create/write. May use suffix 'K' or 'M'.\n");
1339 printf(
" -e Excel importable format.\n");
1340 printf(
" -b Output best case results.\n");
1341 printf(
" -i # Increment force factor by this increment.\n");
1342 printf(
" -w Output worst case results.\n");
1343 printf(
" -d <dir> Specify starting directory.\n");
1344 printf(
" -U <dir> Mount point to remount between tests.\n");
1345 printf(
" -t Verbose output option.\n");
1346 printf(
" -v Version information.\n");
1347 printf(
" -h Help text.\n");
1349 printf(
" The structure of the file tree is:\n");
1350 printf(
" X number of Level 1 directories, with X number of\n");
1351 printf(
" level 2 directories, with X number of files in each\n");
1352 printf(
" of the level 2 directories.\n");
1354 printf(
" Example: fileop 2\n");
1356 printf(
" dir_1 dir_2\n");
1357 printf(
" / \\ / \\ \n");
1358 printf(
" sdir_1 sdir_2 sdir_1 sdir_2\n");
1359 printf(
" / \\ / \\ / \\ / \\ \n");
1360 printf(
" file_1 file_2 file_1 file_2 file_1 file_2 file_1 file_2\n");
1362 printf(
" Each file will be created, and then Y bytes is written to the file.\n");
◆ validate()
| int validate |
( |
char * |
buffer, |
|
|
int |
size, |
|
|
char |
value |
|
) |
| |
◆ best
◆ cret
◆ dirlen
◆ excel
◆ incr
◆ junk
◆ junkp
◆ lower
◆ mbuffer
◆ mountname
| const char* mountname =NULL |
◆ range
◆ stats
◆ sz
◆ thedir
◆ upper
◆ verbose
◆ version
◆ worst