-
Notifications
You must be signed in to change notification settings - Fork 15
/
Changes.txt
2279 lines (2215 loc) · 105 KB
/
Changes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
V1.0 (capps):
Capps:
Beginning of the code base.
Isom:
Added reread
Added rewrite
Added read backwards
Added lseek+read
Added lseek+reread
Capps:
Added more accurate time collection method.
Added alignment in the on chip Cache code.
Added change step when passing 16 Meg size file.
Capps:
Added auto+ to purge on chip cache.
kcollins:
replaced the lseek+read &reread test with random reads and writes
Capps:
Replaced reverse re-read with record rewrite. This gives
both source and destination on chip cache hits.
Capps:
added auto+multi
Support for multiple buffers in the iozone.
Capps:
Removed the recursion through main().
Cleaned up the printout when not in auto mode.
Added support for stride-read. ( Manual mode only )
Capps:
Cleanup so it will build for bsd4_2 ( C series machines )
Capps:
Cleanup on frontend. Now uses getopt() and has a real parser.
Cleanup on error handling.
Added throughput tests.
Eliminated page faults in the throughput tests.
Capps:
Made all perf tests table driven.
Add back Bill's Copyright.
ansify, prototypes, scope limitations.
V2.1 (kcollins):
Simplified auto mode logic. auto test now runs from
MEGABYTES_START to MEGABYTES_END and from RECLEN_START
to RECLEN_END with values multiplied by MULTIPLIER
each iteration. Range set to (4K...16M) for RECLEN
and (1M...512M) for MEGABYTES. (the physical I/O
tests for RECLEN <4K take several hours on a 1200).
Enlarged MAXBUFFERSIZE to 16MB for large record tests.
Added error checking for mallocs (!-).
Changed multibuffer code to use all of MAXBUFFERSIZE
as a circular buffer, with the number of buffers
varying as MAXBUFFERSIZE/reclen. This corrects
problems where MAXBUFFERSIZE*MAXBUFFERS was very large.
Also modified auto mode so that tests where
reclen>filesize are skipped.
Modified preadv code to vary the number of buffers as
necessary such that they will fit in min(MAXBUFFERSIZE,filesize).
This fixes problems where the number of buffers in
the i/o vector exceeded the size of mainbuffer.
Added bzero for buffer when it is first malloc'd. This
ensures that it is initialized before use.
Created a script (profile.fs) that runs a series of tests
to generate a "box" around common application variables
such as filesize, buffer size, buffer encachement, and
number of concurrent processes. This is intended to serve
as the "standard" filesystem profile.
buffer reset to mainbuffer before each test loop
V2.3 (kcollins):
added -F option to write to specify pathnames for throughput
tests (allowing throughput tests to multiple filesystems).
V2.4 (capps):
Changed preadv/pwritev to use a non-sequential access pattern.
Changed the version number.
Moved all user interface values to KB. This simplifies
the user interface. (consistant scaling) and it also
allows one to start with 512kb file. This is very important
since the first indirect block causes a significant
slowdown in the initial write cases.
V2.5 (capps):
Re-structure and cleanup.
V2.6 (kcollins)
Bug fix for the throughput tests.
V2.7 (capps):
Added -o flag. This makes all file opens for writes
have the O_SYNC flag set. This makes all writes go
to disk before competion. This is useful for seeing
what the media can do without the buffer cache helping.
V2.8 (capps):
Added -V flag. This turns on pattern verification. If
the user were to type:
-V 165
Then bit pattern 0xa5 would be placed in every byte in the
buffer and when read back from buffer cache, or disk,
it will be verified to be correct. If it fails then
the error handler will specify the byte location of the
miscompare.
V2.9 (capps):
Added fread/re-fread, fwrite/re-fwrite to list of tests.
Added -E to allow the user to run pread and friends as an option.
V2.10 (capps):
Added -R. This will generate Excel compatible files that
can then be imported into Excel and graphed.
Added support for 5 targets to the makefile.
Added -M This prints out the uname -a stuff about a machine.
Added -O This gives all results in operations/sec instead of KB/sec.
More code cleanup. Update comments.
V2.11 (kcollins)
added -A. Auto mode with no crossover and read/write tests only
changed default record size to 64KB (from 512 bytes)
V2.12 (capps)
Added shared memory barrier sync for throughput mode. This
provides much finer control over the actual timeing
of the children.
Added mmap() for BSD (Convex) machines that do not
have System V shared memory.
Added two ways of showing throughput results. The second
method takes into consideration children that lag behind
due to slow devices, and gives results that are more accurate.
Cleanup of some tab problems in throughput results.
Cleanup of floating point output taking to much space.
Added -d to allow a variable delay comming out of the barrier
in the throughput tests.
V2.12 (kcollins)
added declaration for create_list to make ansi c compiles work
several fixes to some of the SPPUX 5.x make targets
added date run to banner (hope this doesn't break your scripts $-)
V2.13 (capps)
Added "stone walling". During throughput tests, if one process
finishes then all others are sent a signal to tell them
to stop. (The parallel region has finished). This provides
better numbers for throughput.
Only bzero or fill min(reclen,CACHE_SIZE) this saves a bunch
of paging on workstations with small memory systems.
Fixed broken target in the makefile.
Note: use of -d is not advised. It makes the children not run
in parallel.
V2.14 (capps)
Bug fix to avoid anomaly in SPP-UX. In SPP-UX the filesystem
code preallocates meta-data to improve initial file writes.
The first indirect block allocation was causing a block
of zeros to be written syncronously. In SPP-UX the filesytem
code preallocates zero filled blocks when the first writer
touches a filesystem after a sync. A pool of on disk zero'd
blocks are created asynchronously and handed out to writers
when they cross the boundry into the first level indirect
and would have had to stop and wait for the zero filled
block to be written. Iozone's testing methodology was not
allowing the OS to have any time to complete the async
pre-allocation and was not showing the speed up that real
applications would see.
V2.15 (capps)
Improve throughput testing mode.
V2.16 (capps)
Added -U option. This allows the filesystem to be unmounted
and remounted between tests. This guarentees that the buffer
cache is cold.
V2.17 (capps)
Added -T option. This makes the throughput tests use
threads instead of processes. Currently using pthread_create(),
pthread_self(), and pthread_exit().
Cleaned up file cleanup mechanism. Control C will now cause
all temp files to be deleted. Removed all signals used to
control sub-processes.
V2.18 (capps)
Cleanup. Added read stride, read backwards to the throughput
tests. Various bug fixes
V2.19 (capps)
Removed all calls to malloc() and all use of system V shared
memory. mmap() is much easier to deal with. As for malloc()
HP programs are very limited on the ammount of malloc() space
and not nearly so constrained on mmap() memory. It was necessary
to move to mmap() since multiple threads all need buffers in
the processes address space.
Removed dependency on first thread being number 2. Iozone now
probes to find out what the thread library will return for
the first thread. This makes the switching thread libraries
much easier.
V2.20 (capps)
Children now set stop_flag and shutdown all other children.There
is no further need to tell the parent to distribute the stop_flag.
verify, purge, and osync are now supported in the throughput
tests. Fixed bug where pthreads stack size was causing
segmentation violation when purgeit() was called for buffer
that were greater than 256kb.
V2.21 (capps)
Enhanced throughput reporting. Now provides:
Child throughput, Parent throughput, Minimum throughput for
any child in the group, Maximum throughput for any child in the
group, and Minimum transfer count. Due to stone walling
not all children write the full requested size. This
minimum transfer count provides the user with knowledge of
how much work was performed by the slowest child.
Added -C flag. This allows the user to see all of the transfer
counts for each child. Had to add system 5 shared memory back.
Linux does not support mmap(MAP_ANONYMOUS|MAP_SHARED). So it
must use SYSV shared memory get get sharing working.
V2.22 (capps)
Made changes to make iozone work correctly on Linux on a
PC. Changes are just scaling down the test to fit on a
pc, and scaling down shared segments to < 16 Meg so it
can run on an Intel 386 class machine.
Added: -L # Set the processor cache line size in bytes.
Added: -S # Set the processor cache size in kbytes.
Removed spin wait in parent waiting for threads to
finish each throughput test. Code not uses thread_join().
Fixed -O (operations/sec) mode to work in throughput tests.
V2.23 (capps)
Close small timing hole where thread/process has set stop flag
and others are in a system call. The hole allowed threads/processes
to continue to increment work done after one had finished and
told the others to stop. The result was that the children would
report slightly high numbers as they were not truely parallel
at the finish line. Added random read throughput test.
Fixes for VxFS small extents being created by prime_zb() functions.
Provides more details about the throughput run.
V2.24 (capps)
Added support for -R (Excell chart generation) to the throughput
tests. Also added support for the -O (ops/sec) to the throughput
Excell chart.
V2.25 (capps)
Added support for selecting which test to run. -i #
-i 0 -i 3
will run write and read-backwards tests only. For a list
of the test numbers type iozone -h.
V2.26 (capps)
Added support for LARGE_FILES for the hpux-11.0 target.
V2.27 (capps)
All tests now verify one long word of data from each page
written/read to/from the file. This is to level the
playing field with systems that do not move data
when "read" or "write" is called, but instead just
map the file and perform the I/O when the address space
is touched. Benchmarks that do not validate the data
,at least touch each page, do not measure the read/write
times just the map times.
Note: The -V option still verifies each byte of the buffer,
the default is now to verify one long from each page.
V2.28 (capps)
Added support for benchmarking mmap() files.
Added more command line options. -B -G -D
B = Use mmap() files for the benchmark.
G = Use msync(MS_SYNC) for mmap files.
D = Use msync(MS_ASYNC) for mmap files.
V2.29 (capps)
Bug fixes for:
Combination of running individual tests and mmap() files support.
Stride read bug that caused only portions of the total file to be
examined.
V2.30 (capps)
Fixups for build under SPP-UX
V2.31 (capps)
Fixups for build under Linux.
Added -j ### to support user setting the stride size for the
stride read benchmark.
V2.32 (capps)
Add support for IRIX and IRIX64.
V2.33 (capps)
Add support for POSIX async I/O benchmarking. Uses a library
to interface to POSIX async I/O model. The library provides
and extended async_read() interface. It takes the standard
calling options of read() but also allows the application to
perform read-ahead with a stride. (positive or negative)
and allows the user to specify how much read ahead to
perform.
Tested on HP-UX 11.0, Linux, SGI Origin.
V2.34 (capps)
Added -k. This allows POSIX async I/O to utilize the buffer
specified and not to perform any bcopys. Fixes to make
multi-threadedness work on SGI Origin.
V2.34 (capps)
Added [-k #]. This allows POSIX async I/O to utilize the buffer
specified and not to perform any bcopys. Fixes to make
multi-threadedness work on SGI Origin.
V2.36 (capps)
Iozone is now a 64 bit application. It may be compiled for either
64 bit or 32 bit machines. The makefile supports 64 and 32 bit
targets for machines that support 32 & 64 bit targets.
All version numbers are now automatically generated by
RCS. This is the last time we have to bump the version
number by hand.
-----------------------------------------------------------------------------------
Changed over to RCS source control here:
Version Numbers are reset at this point back to Version 1.1.
-----------------------------------------------------------------------------------
RCS file: iozone.c,v; Working file: iozone.c
head: 1.94
locks: ; strict
access list:
symbolic names:
comment leader: " * "
total revisions: 94; selected revisions: 94
description:
Initial rcs version of Iozone
----------------------------
Revision 1.94
date: 99/01/18 13:02:57; author: capps; state: Exp; lines added/del: 7/2
Call msync if writer wants sync in timing and terminates early in multi thread test case.
----------------------------
Revision 1.93
date: 99/01/18 11:46:11; author: capps; state: Exp; lines added/del: 309/126
Cleanup for include_flush and include_close for single and multi threaded operations.
----------------------------
Revision 1.92
date: 99/01/15 10:53:58; author: capps; state: Exp; lines added/del: 40/11
Add include_close support for throughput testing
----------------------------
Revision 1.91
date: 98/12/07 09:26:22; author: capps; state: Exp; lines added/del: 43/24
For Windows: Use the high resolution timers instead of timeofday();
Fix a few casting problems.
----------------------------
Revision 1.90
date: 98/11/30 14:49:46; author: capps; state: Exp; lines added/del: 24/17
Update the copyright and names and places
----------------------------
Revision 1.89
date: 98/10/30 09:04:51; author: capps; state: Exp; lines added/del: 1/2
An extra close(fd) causes HP-UX to fail future unmounts...
----------------------------
Revision 1.88
date: 98/10/29 09:47:25; author: capps; state: Exp; lines added/del: 17/17
Cleanup the help screen
----------------------------
Revision 1.87
date: 98/10/28 23:31:11; author: capps; state: Exp; lines added/del: 7/6
Spelling error fix.
----------------------------
Revision 1.86
date: 98/10/14 11:21:50; author: capps; state: Exp; lines added/del: 23/68
Unified the time method to only have 2 ways to get time.
----------------------------
Revision 1.85
date: 98/10/14 09:22:09; author: capps; state: Exp; lines added/del: 91/91
Added code to remove the latency of gettimeofday() from the file performance measurements.
----------------------------
Revision 1.84
date: 98/10/12 11:44:50; author: capps; state: Exp; lines added/del: 107/8
Add time resolution output, and fix the divide by zero when the time in
a system call turns out to be Zero. This will introduce distortion for machines
that have very fast system calls and very poor time resolution. Windows
has a 50 Milli second resolution on gettimeofday(). So... to fix it
all calls that take less than 50 Milli seconds will be rounded up to
cost 50 milliseconds.
----------------------------
Revision 1.83
date: 98/10/06 09:58:16; author: capps; state: Exp; lines added/del: 46/2
Add support for Windows build
----------------------------
Revision 1.82
date: 98/09/23 09:48:02; author: capps; state: Exp; lines added/del: 2/2
Fix bug where -i # was leaving tmp files after throughput test.
----------------------------
Revision 1.81
date: 98/09/23 09:41:12; author: capps; state: Exp; lines added/del: 1/3
Remove debug printf
----------------------------
Revision 1.80
date: 98/09/23 09:29:01; author: capps; state: Exp; lines added/del: 23/1
Add my_nap(). This allows the threads to switch processors to their
new bound processor before performing any work.
----------------------------
Revision 1.79
date: 98/09/22 11:57:20; author: capps; state: Exp; lines added/del: 8/8
Change xx back into an int so the modulo will work better.
----------------------------
Revision 1.78
date: 98/09/18 16:27:05; author: capps; state: Exp; lines added/del: 18/15
Remove create in rewrite path.
----------------------------
Revision 1.77
date: 98/08/17 16:44:06; author: capps; state: Exp; lines added/del: 23/1
Fixes for Solaris and the new processor bind feature.
----------------------------
Revision 1.76
date: 98/08/17 16:17:45; author: capps; state: Exp; lines added/del: 1/2
Remove debug code.
----------------------------
Revision 1.75
date: 98/08/17 16:16:15; author: capps; state: Exp; lines added/del: 92/5
Add support for binding procs/threads to cpus.
----------------------------
Revision 1.74
date: 98/08/07 16:51:41; author: capps; state: Exp; lines added/del: 4/3
Add fsync to the fwrite test case when the user specifies -e
----------------------------
Revision 1.73
date: 98/08/07 16:47:38; author: capps; state: Exp; lines added/del: 178/208
Add -c and -e to allow closes and fsyncs to be inside the timing calculations.
----------------------------
Revision 1.72
date: 98/08/06 22:40:15; author: capps; state: Exp; lines added/del: 9/1
Add setvbuf to fwrite and fread tests so that the internal fwrite and fread
buffer size is the same as the record size. This is what a well tuned application
would do.
----------------------------
Revision 1.71
date: 98/08/06 09:03:06; author: capps; state: Exp; lines added/del: 2/3
Fix fsync filename problem in fwrite_perf_test
----------------------------
Revision 1.70
date: 98/08/05 18:06:41; author: capps; state: Exp; lines added/del: 6/2
Add fsync after fwrite test case so the fread will start with a
clean buffer cache and no writes in progress.
----------------------------
Revision 1.69
date: 98/08/03 10:45:49; author: capps; state: Exp; lines added/del: 3/3
Bug fix for -V option not filling the entire buffer.
----------------------------
Revision 1.68
date: 98/07/30 22:11:11; author: capps; state: Exp; lines added/del: 2/3
Fix for solaris
----------------------------
Revision 1.67
date: 98/07/30 22:08:19; author: capps; state: Exp; lines added/del: 2/2
Fix for solaris
----------------------------
Revision 1.66
date: 98/07/30 22:05:02; author: capps; state: Exp; lines added/del: 43/15
Add support for Solaris
----------------------------
Revision 1.65
date: 98/07/01 14:19:19; author: capps; state: Exp; lines added/del: 80/82
Move end_async inside the timing loops as in async I/O it counts.
----------------------------
Revision 1.64
date: 98/06/16 17:04:36; author: capps; state: Exp; lines added/del: 13/2
Correct problem where user specifies pread tests on hpux... which does not
support these operations. The test now prints an error message and exits.
----------------------------
Revision 1.63
date: 98/06/16 16:54:22; author: capps; state: Exp; lines added/del: 1/2
Remove exit from auto_test. This allows the message "iozone test complete" to
be printed when in auto test mode.
----------------------------
Revision 1.62
date: 98/06/10 10:54:28; author: capps; state: Exp; lines added/del: 175/173
All exit()s now have a unique exit value.
----------------------------
Revision 1.61
date: 98/05/18 13:34:03; author: capps; state: Exp; lines added/del: 17/18
Move .dat file descriptors to global data. Needed to prevent re-opens.
----------------------------
Revision 1.60
date: 98/05/18 13:24:22; author: capps; state: Exp; lines added/del: 6/3
Bug fix. Prevents re-opending .dat files when in auto mode.
----------------------------
Revision 1.59
date: 98/05/08 13:03:02; author: capps; state: Exp; lines added/del: 21/3
Enhance throughput tests to follow the -i test number to run options.
----------------------------
Revision 1.58
date: 98/05/07 14:15:49; author: capps; state: Exp; lines added/del: 109/39
Make VXFS a define in the make command. This makes moving to other targets
easier. It removes the binding of HPUX and VXFS.
Also, Added -Q to support offset/latency file generation for later use
as inputs to plot program.
----------------------------
Revision 1.57
date: 98/05/06 15:09:43; author: capps; state: Exp; lines added/del: 100/27
Add -N to provide results in microseconds per operation.
----------------------------
Revision 1.56
date: 98/05/05 13:23:29; author: capps; state: Exp; lines added/del: 3/10
If the user specifies -i 0 then run both write and rewrite tests.
----------------------------
Revision 1.55
date: 98/04/30 15:19:02; author: capps; state: Exp; lines added/del: 1/1
No change
----------------------------
Revision 1.54
date: 98/04/30 15:09:58; author: capps; state: Exp; lines added/del: 2/2
Unlink the vxfstest when the test fails.
----------------------------
Revision 1.53
date: 98/04/30 13:07:21; author: capps; state: Exp; lines added/del: 7/5
Cleanup help output.
----------------------------
Revision 1.52
date: 98/04/30 12:58:29; author: capps; state: Exp; lines added/del: 21/4
Add async I/O with no bcopy to throughput tests.
----------------------------
Revision 1.51
date: 98/04/29 15:29:29; author: capps; state: Exp; lines added/del: 5/1
Fixes so it will compile on the SGI Origin.
----------------------------
Revision 1.50
date: 98/04/29 11:57:58; author: capps; state: Exp; lines added/del: 5/1
Do not need to limit async ops. Fix is in libasync.c
----------------------------
Revision 1.49
date: 98/04/29 10:45:19; author: capps; state: Exp; lines added/del: 61/3
Add async I/O to throughput testing for writes
----------------------------
Revision 1.48
date: 98/04/28 11:57:13; author: capps; state: Exp; lines added/del: 5/1
Limit max async operations to 60. Beyond this there be dragons.
----------------------------
Revision 1.47
date: 98/04/28 10:16:09; author: capps; state: Exp; lines added/del: 108/21
Completed support for no_bcopy POSIX async I/O in the async_write_no_copy path.
This allows write tests to perform async I/O with buffers released when
the write is completed.
----------------------------
Revision 1.46
date: 98/04/27 16:58:38; author: capps; state: Exp; lines added/del: 43/10
Add aio_write() to the write and re-write tests. This provides
POSIX async I/O for the those tests.
----------------------------
Revision 1.45
date: 98/04/25 09:53:39; author: capps; state: Exp; lines added/del: 3/2
direct_flag is an int. Was a char in one place and
an int in another.
----------------------------
Revision 1.44
date: 98/04/25 09:17:42; author: capps; state: Exp; lines added/del: 27/15
More support for vx_direct support in the write path
----------------------------
Revision 1.43
date: 98/04/24 16:33:44; author: capps; state: Exp; lines added/del: 115/77
Move VX_DIRECT to libasync. But keep the VX_DIRECT support also
in iozone. So one can use VX_DIRECT with and without async I/O
----------------------------
Revision 1.42
date: 98/04/24 16:20:34; author: capps; state: Exp; lines added/del: 127/60
Move VX_DIRECT to the libasync module.
----------------------------
Revision 1.41
date: 98/04/24 15:50:54; author: capps; state: Exp; lines added/del: 190/7
Add support for VxFS VX_DIRECT
Idea is to use VX_DIRECT and POSIX async I/O together
----------------------------
Revision 1.40
date: 98/04/22 16:38:25; author: capps; state: Exp; lines added/del: 5/5
Sppux wants ail_gettimeofday variables to be unsigned int.
----------------------------
Revision 1.39
date: 98/04/22 16:19:50; author: capps; state: Exp; lines added/del: 7/3
Fix -M option not printing cleanly
Fix -R in 32 bit mode printing garbage.
----------------------------
Revision 1.38
date: 98/04/22 15:56:02; author: capps; state: Exp; lines added/del: 1/1
Change to only disply revision not full header.
----------------------------
Revision 1.37
date: 98/04/22 15:52:19; author: capps; state: Exp; lines added/del: 1/1
Add RCS Header to support versioning.
----------------------------
Revision 1.36
date: 98/04/22 15:38:26; author: capps; state: Exp; lines added/del: 1/1
fix to bcopy() third arg needs to be size_t for 32 bit mode.
----------------------------
Revision 1.35
date: 98/04/22 09:09:24; author: capps; state: Exp; lines added/del: 17/17
Bug fixes for 64 bit mode on IRIX, and addition
on the internal inuse queue to insure that the
internal struct_cache_ent structures are not released
too early when doing direct I/O (async_read_no_copy).
----------------------------
Revision 1.34
date: 98/04/21 09:31:02; author: capps; state: Exp; lines added/del: 4/0
Fix to eliminate hidden (dot) files that iozone was creating
in throughput mode. All files are now visible with ls.
----------------------------
Revision 1.33
date: 98/04/21 08:30:35; author: capps; state: Exp; lines added/del: 7/1
Have Iozone print the compile model used.
----------------------------
Revision 1.32
date: 98/04/20 18:46:02; author: capps; state: Exp; lines added/del: 49/20
Fixes for 32 bit mode.
----------------------------
Revision 1.31
date: 98/04/20 16:57:29; author: capps; state: Exp; lines added/del: 8/8
make sure malloc is called with (size_t) parameter.
----------------------------
Revision 1.30
date: 98/04/20 16:05:08; author: capps; state: Exp; lines added/del: 933/757
Iozone now 64 bit application
----------------------------
Revision 1.29
date: 98/04/20 12:32:25; author: capps; state: Exp; lines added/del: 4/4
Move msync to before munmap so file gets written.
----------------------------
Revision 1.28
date: 98/04/20 10:21:30; author: capps; state: Exp; lines added/del: 2/2
Minor fix for -O flag and -B not working smoothly together.
----------------------------
Revision 1.27
date: 98/04/20 10:17:19; author: capps; state: Exp; lines added/del: 0/0
No change
----------------------------
Revision 1.26
date: 98/04/19 15:11:07; author: capps; state: Exp; lines added/del: 5/5
Remove prime_zbfill. It causes problems with mmap files.
----------------------------
Revision 1.25
date: 98/04/16 15:24:50; author: capps; state: Exp; lines added/del: 228/70
-H is Nastran async I/O with bcopy
-k is async I/O without any bcopys
----------------------------
Revision 1.24
date: 98/04/15 16:48:30; author: capps; state: Exp; lines added/del: 22/4
fix to make build on 9.05 and 10.1
----------------------------
Revision 1.23
date: 98/04/15 15:36:55; author: capps; state: Exp; lines added/del: 9/9
Cleanup some compiler warnings about un-initialized variables. They
are not really un-initialized and used but it does generate
compiler warnings on some machines.
----------------------------
Revision 1.22
date: 98/04/15 15:32:56; author: capps; state: Exp; lines added/del: 7/7
Need to free the dummyname space a bit later.
----------------------------
Revision 1.21
date: 98/04/15 14:37:05; author: capps; state: Exp; lines added/del: 27/13
Fix to use smaller stack size in thread_ routines. It was causing
the SGI to drop core in throughput tests.
----------------------------
Revision 1.20
date: 98/04/14 17:01:19; author: capps; state: Exp; lines added/del: 27/16
Fix a memory leak. In multi_throughput testing shmalloc was getting called
for each iteration. This is not needed and causes much to much
shm to be allocated. Not broken but definately a pig.
----------------------------
Revision 1.19
date: 98/04/14 15:19:15; author: capps; state: Exp; lines added/del: 2/0
When -k is specified alone this will turn on the POSIX async I/O and
set depth to 0.
----------------------------
Revision 1.18
date: 98/04/14 15:00:18; author: capps; state: Exp; lines added/del: 21/20
Fixes to make multi-threaded version run on the SGI Origin.
----------------------------
Revision 1.17
date: 98/04/14 11:55:44; author: capps; state: Exp; lines added/del: 17/11
Add support for -k. When using POSIX async I/O use the
buffer specified and do not perform any bcopys.
----------------------------
Revision 1.16
date: 98/04/13 10:22:18; author: capps; state: Exp; lines added/del: 27/380
Add libasync library support
----------------------------
Revision 1.15
date: 98/04/11 12:09:25; author: capps; state: Exp; lines added/del: 1/0
Fix memory leak. Now calls del_cache when ever any calls to async_end happen.
This will ensure that there are no outstanding I/Os on the cache that
ha ve not been canceled .
----------------------------
Revision 1.14
date: 98/04/11 11:57:10; author: capps; state: Exp; lines added/del: 632/47
Add support for POSIX async I/O testing
----------------------------
Revision 1.13
date: 98/03/31 14:30:15; author: capps; state: Exp; lines added/del: 44/6
Fix support for bsd4_2 and ConvexOS
----------------------------
Revision 1.12
date: 98/03/31 11:26:34; author: capps; state: Exp; lines added/del: 2/2
Bump version number to 2.32
----------------------------
Revision 1.11
date: 98/03/31 11:20:51; author: capps; state: Exp; lines added/del: 70/6
Add support for SGI IRIX and SGI IRIX64
----------------------------
Revision 1.10
date: 98/03/27 14:00:47; author: capps; state: Exp; lines added/del: 15/20
Put the bcopy back. It is more represenative
of what the real application will do.
----------------------------
Revision 1.9
date: 98/03/27 13:25:02; author: capps; state: Exp; lines added/del: 40/14
Improved mmap file support. Now only have 1 long word from
each page touched. This eliminates the overhead of bcopy
dominating the results. It also is performing the same
work that the non-mmap version does with verify().
----------------------------
Revision 1.8
date: 98/03/27 10:41:13; author: capps; state: Exp; lines added/del: 10/4
Bug fix. Frewrite was truncating the file. This fix
ensures that the Frewrite test opens without trunc.
----------------------------
Revision 1.7
date: 98/03/27 10:16:41; author: capps; state: Exp; lines added/del: 3/3
Fix report to specify stride size as a function of reclen.
It did not make sense to output kbytes as the value changes
when in auto mode to match the current record length.
----------------------------
Revision 1.6
date: 98/03/26 15:28:15; author: capps; state: Exp; lines added/del: 16/8
Add support for -j option. This
allows the user to specify the stride size for
the strided file access benchmark.
----------------------------
Revision 1.5
date: 98/03/25 15:27:01; author: capps; state: Exp; lines added/del: 1/1
Fixup help screen to reflect new options
----------------------------
Revision 1.4
date: 98/03/25 15:21:23; author: capps; state: Exp; lines added/del: 1/1
Change the revision number
----------------------------
Revision 1.3
date: 98/03/25 15:20:28; author: capps; state: Exp; lines added/del: 16/1
Fixup support for Linux
----------------------------
Revision 1.2
date: 98/03/25 13:58:05; author: capps; state: Exp; lines added/del: 16/3
Bug fixes for SPP-UX
----------------------------
Revision 1.1
date: 98/03/25 10:43:45; author: capps; state: Exp;
Initial revision
=============================================================================
RCS file: libasync.c,v; Working file: libasync.c
head: 1.39
locks: ; strict
access list:
symbolic names:
comment leader: " * "
total revisions: 39; selected revisions: 39
description:
Initial version of POSIX async I/O library interface.
----------------------------
Revision 1.39
date: 98/07/30 22:05:21; author: capps; state: Exp; lines added/del: 3/1
Add support for Solaris
----------------------------
Revision 1.38
date: 98/07/07 13:00:39; author: capps; state: Exp; lines added/del: 1/11
Remove extra bcopy in the async_write_no_bcopy path.
----------------------------
Revision 1.37
date: 98/06/11 09:47:58; author: capps; state: Exp; lines added/del: 3/3
Fix syntax error for IRIX
----------------------------
Revision 1.36
date: 98/06/10 10:56:55; author: capps; state: Exp; lines added/del: 10/10
All exit()s now have a unique exit value.
----------------------------
Revision 1.35
date: 98/05/07 14:17:20; author: capps; state: Exp; lines added/del: 2/2
Make VXFS a define in the make command. This makes moving to other targets
easier. It removes the binding of HPUX and VXFS.
Also, Added -Q to support offset/latency file generation for later use
as inputs to plot program.
----------------------------
Revision 1.34
date: 98/04/30 15:19:54; author: capps; state: Exp; lines added/del: 1/3
Remove debug code that breaks 64 bit mode compiled code.
----------------------------
Revision 1.33
date: 98/04/30 13:09:13; author: capps; state: Exp; lines added/del: 2/2
Make retval an int so it can be checked for less than zero.
----------------------------
Revision 1.32
date: 98/04/29 16:49:34; author: capps; state: Exp; lines added/del: 5/11
If overshooting on number of asyncs then terminate the loop and
let the next time through pick up the I/O.
----------------------------
Revision 1.31
date: 98/04/29 16:37:49; author: capps; state: Exp; lines added/del: 3/3
Remove debug code
----------------------------
Revision 1.30
date: 98/04/29 15:29:48; author: capps; state: Exp; lines added/del: 3/1
Fixes so it will compile on the SGI Origin.
----------------------------
Revision 1.29
date: 98/04/29 11:56:27; author: capps; state: Exp; lines added/del: 36/10
Work around for bug in POSIX async I/O library
----------------------------
Revision 1.28
date: 98/04/29 11:04:26; author: capps; state: Exp; lines added/del: 1/2
Remove debug code
----------------------------
Revision 1.27
date: 98/04/29 11:02:54; author: capps; state: Exp; lines added/del: 54/27
Added resource shortage paths.
----------------------------
Revision 1.26
date: 98/04/28 18:12:51; author: capps; state: Exp; lines added/del: 1/3
Add async I/O to the throughput tests
----------------------------
Revision 1.25
date: 98/04/28 17:12:40; author: capps; state: Exp; lines added/del: 3/1
fix wait_for_ routine to reset w_tail if item being removed is also the tail.
----------------------------
Revision 1.24
date: 98/04/28 16:14:06; author: capps; state: Exp; lines added/del: 1/3
bug fix. 2 calls to malloc for aligned memory.
----------------------------
Revision 1.23
date: 98/04/28 11:57:39; author: capps; state: Exp; lines added/del: 37/13
Limit max async operations to 60. Beyond this there be dragons.
----------------------------
Revision 1.22
date: 98/04/28 10:17:22; author: capps; state: Exp; lines added/del: 127/42
Completed support for no_bcopy POSIX async I/O in the async_write_no_copy path.
This allows write tests to perform async I/O with buffers released when
the write is completed.
----------------------------
Revision 1.21
date: 98/04/27 16:59:14; author: capps; state: Exp; lines added/del: 246/9
Add aio_write() to the write and re-write tests. This provides
POSIX async I/O for the those tests.
----------------------------
Revision 1.20
date: 98/04/24 16:20:55; author: capps; state: Exp; lines added/del: 15/3
Move VX_DIRECT to the libasync module.
----------------------------
Revision 1.19
date: 98/04/24 15:50:13; author: capps; state: Exp; lines added/del: 42/11
Add support for VxFS VX_DIRECT
Idea is to use VX_DIRECT and POSIX async I/O together
----------------------------
Revision 1.18
date: 98/04/24 12:36:42; author: capps; state: Exp; lines added/del: 13/5
Fix some error printfs to match the size of the off_t.
----------------------------
Revision 1.17
date: 98/04/24 12:18:11; author: capps; state: Exp; lines added/del: 7/7
Fixes for LP64 mode. off_t changed to off64_t
----------------------------
Revision 1.16
date: 98/04/24 09:33:32; author: capps; state: Exp; lines added/del: 275/35
Add comments and fix for LP64 model on hpux.
----------------------------
Revision 1.15
date: 98/04/23 16:58:06; author: capps; state: Exp; lines added/del: 167/13
Make libasync large file aware.
----------------------------
Revision 1.14
date: 98/04/22 15:58:45; author: capps; state: Exp; lines added/del: 1/1
Change version to only display rcs version id.
----------------------------
Revision 1.13
date: 98/04/22 15:52:54; author: capps; state: Exp; lines added/del: 1/2
Add RCS version support
----------------------------
Revision 1.12
date: 98/04/22 11:39:35; author: capps; state: Exp; lines added/del: 52/8
Add firewall to prevent in flight changes to the aiocb structure.
----------------------------
Revision 1.11
date: 98/04/22 09:10:36; author: capps; state: Exp; lines added/del: 57/19
Bug fixes for 64 bit mode on IRIX, and addition
on the internal inuse queue to insure that the
internal struct_cache_ent structures are not released
too early when doing direct I/O (async_read_no_copy).
----------------------------
Revision 1.10
date: 98/04/21 09:34:14; author: capps; state: Exp; lines added/del: 18/10
Improve error messages.
----------------------------
Revision 1.9
date: 98/04/20 16:06:21; author: capps; state: Exp; lines added/del: 53/50
Iozone now 64 bit application
----------------------------
Revision 1.8
date: 98/04/20 10:17:59; author: capps; state: Exp; lines added/del: 0/0
no change
----------------------------
Revision 1.7
date: 98/04/17 08:49:16; author: capps; state: Exp; lines added/del: 15/2
Optimization on async operations. Just add one to the end
of the list if the list already has more than one item.
----------------------------
Revision 1.6
date: 98/04/17 00:00:30; author: capps; state: Exp; lines added/del: 10/2
Make cancel keep trying until it succeeds. Otherwise transfers after the buffer
is freed can occur.
----------------------------
Revision 1.5
date: 98/04/16 16:49:28; author: capps; state: Exp; lines added/del: 49/4
Improve error handling when running machine out of memory.
----------------------------
Revision 1.4
date: 98/04/16 15:26:41; author: capps; state: Exp; lines added/del: 118/28
added async_read_no_copy(). This allows the application to let the
library specify the destination buffer and perform the async I/O
without unwanted bcopys.
----------------------------
Revision 1.3
date: 98/04/14 11:56:23; author: capps; state: Exp; lines added/del: 36/10
Add supporf for -k. When using POSIX async I/O use
the buffer specified and do not perform any bcopys.
----------------------------
Revision 1.2
date: 98/04/13 10:35:20; author: capps; state: Exp; lines added/del: 5/7
Fixup for error path to propagate any small transfers.
----------------------------
Revision 1.1
date: 98/04/13 10:21:23; author: capps; state: Exp;
Initial revision
=============================================================================
RCS file: makefile,v; Working file: makefile
head: 1.20
locks: ; strict
access list:
symbolic names:
comment leader: "# "
total revisions: 20; selected revisions: 20
description:
Initial version of makefile
----------------------------
Revision 1.20
date: 98/10/06 10:36:22; author: capps; state: Exp; lines added/del: 87/28
Add comments to describe each targets capabilities.
----------------------------
Revision 1.19
date: 98/10/06 09:59:18; author: capps; state: Exp; lines added/del: 3/3
Fix spelling error
----------------------------
Revision 1.18
date: 98/10/06 09:58:29; author: capps; state: Exp; lines added/del: 18/3
Add support for Windows build
----------------------------
Revision 1.17
date: 98/08/17 16:44:56; author: capps; state: Exp; lines added/del: 2/2
Fixes for Solaris
----------------------------
Revision 1.16
date: 98/07/30 22:05:33; author: capps; state: Exp; lines added/del: 20/1
Add support for Solaris
----------------------------
Revision 1.15
date: 98/05/07 14:17:26; author: capps; state: Exp; lines added/del: 13/13
Make VXFS a define in the make command. This makes moving to other targets
easier. It removes the binding of HPUX and VXFS.
Also, Added -Q to support offset/latency file generation for later use
as inputs to plot program.
----------------------------
Revision 1.14
date: 98/04/22 16:02:42; author: capps; state: Exp; lines added/del: 2/0
Add RCS version ids.
----------------------------
Revision 1.13
date: 98/04/22 13:58:54; author: capps; state: Exp; lines added/del: 6/6
For now only build the SGI targets in 32 bit mode.
There is some problem with POSIX async I/O and 64 bit apps.
----------------------------
Revision 1.12