bbc1f06c53dae1fdad253dcbd08283c26556bfe1 |
|
27-Feb-2015 |
Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com> |
fio: fix cycles_start build issue There is an issue introduced with "commit 73df3e07 gettime: offset CPU cycle counter by initial value". For architectures which define ARCH_CPU_CLOCK_CYCLES_PER_USEC (currently only s390) this causes a build error gettime.c:174:11: error: ‘cycles_start’ undeclared (first use in this function) if (t < cycles_start && !cycles_wrap) To make sure variables and code are only compiled in the same cases I added a clock definition called ARCH_CPU_CLOCK_WRAPS. We could merge ARCH_CPU_CLOCK_WRAPS and the existing ARCH_CPU_CLOCK_CYCLES_PER_USEC into one if you prefer, so far nobody else uses it. To avoid cluttering all architecture headers I enabled it by default in arch-generic.h, so any arch not needing the wrap handling can undef ARCH_CPU_CLOCK_WRAPS later in their headers. Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com> Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
90881c8456c3ef0410c0d6215cb105ca8326ed3f |
|
29-Jan-2015 |
Jens Axboe <axboe@fb.com> |
gettime: remember to tear down clock cpumask on normal exit Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
aa28ce06b137498bdf26d5e29d80aa5689ffa8d1 |
|
29-Jan-2015 |
Jens Axboe <axboe@fb.com> |
gettime: fix unitialized variable on Solaris Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
1af4be123053b283147e2d06197c52c382412384 |
|
28-Jan-2015 |
Jens Axboe <axboe@fb.com> |
gettime: initialize cpusets properly We can't just use memset(), some platforms have specific init/exit routines for cpusets/masks. Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
4c64ff720be3f2140d67007d9bfe748dbd3bd319 |
|
28-Jan-2015 |
Jens Axboe <axboe@fb.com> |
gettime: if setaffinity fails, print the errno error Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
fa52915e33b0685acfec16fae664dfbf728359ad |
|
06-Jan-2015 |
Jens Axboe <axboe@fb.com> |
gettime: include min/max cycle counts for CPU clock Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
1056413f574045621e0db124367cb98f855305e6 |
|
23-Dec-2014 |
Jens Axboe <axboe@fb.com> |
gettime: add basic init cpuclock test Some systems claim to have a synced and constant rate tsc, even if they don't. So add the basic cpuclock-test test as part of fio trusting the CPU clock, to avoid using the CPU clock on a system where the TSC truly isn't synced between CPUs. Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
d8fc0cd92006a9861fd9352c0d178dff5501d4ba |
|
17-Dec-2014 |
Jens Axboe <axboe@fb.com> |
gettime: fix compile warning for !ARCH_HAVE_CPU_CLOCK Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
1e62c3f36dd54f57ab6f65b7d223b5c8aeae9c9c |
|
17-Dec-2014 |
Jens Axboe <axboe@fb.com> |
gettime: offset CPU cycle counter by initial value Should then be safe for the full 2^64 cycles, and we push the more expensive variable division to later in the run (which is probably never). Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
5194e343579ac766722de2ccd3b4e9f2f63cc1ff |
|
17-Dec-2014 |
Jens Axboe <axboe@fb.com> |
gettime: cleanup for FIO_DEBUG_TIME Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
400531d97395b64e416e0adfdb041419d3994621 |
|
17-Dec-2014 |
Jens Axboe <axboe@fb.com> |
gettime: fix overflow in cycle to usec conversion If this multiplication overflows: usecs = (t * inv_cycles_per_usec) / 16777216UL; then usecs is 2^64/2^24, which is 1099511627776. Divide that by 10^6 to get seconds, and that is 1099511. Since we cached the old value previously, we'd get stuck with this amount of seconds. To avoid turning this into an expensive division, have a check and only divide if we have to. This avoids the overflow. Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
0419419a663c7fa27957be4a827c956c0da3acdc |
|
17-Dec-2014 |
Jens Axboe <axboe@fb.com> |
gettime: improve gettimeofday() offload support Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
02c7e2998366797015b60e4114d0c5478958d171 |
|
16-Dec-2014 |
Jens Axboe <axboe@fb.com> |
gettime: limit warning on CPU clock Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
a7d78f24898d438592ebcbfcd0f4e655bb1845e0 |
|
16-Dec-2014 |
Jens Axboe <axboe@fb.com> |
gettime: don't attempt to fixup what looks like a backwards clock It could just be a wrap. The code is buggy, kill it, we'll deal with the wrap later. Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
0f7f9a918590b45589224568245f75e2dbff9e14 |
|
06-Nov-2014 |
Jens Axboe <axboe@fb.com> |
Make fio -Wshadow clean Found a few issues, actually. Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
0cbbc3919c80d969926f499cb6045be3d5cd0305 |
|
01-Oct-2014 |
Jens Axboe <axboe@fb.com> |
Constify a few more hot paths Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
fc3f3e44cf958524224905d3490b7fb422b33822 |
|
24-Sep-2014 |
Jens Axboe <axboe@fb.com> |
Fix compile for FIO_INC_DEBUG not set Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
814917be52d33d09a6143a801955d7b75229e1b5 |
|
14-Apr-2014 |
Jens Axboe <axboe@fb.com> |
gettime: init 'failed' before use Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
6b0110cdf045b64b448ae3488c75897eddf8f090 |
|
14-Apr-2014 |
Jens Axboe <axboe@fb.com> |
gettime: handle pthread_create() failure Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
caa3eb1c86f9ca0e0063485f0ff0a1fca0dc3af2 |
|
14-Apr-2014 |
Jens Axboe <axboe@fb.com> |
gettime: use unsigned loop counter We're comparing with an unsigned exit condition. Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
919e789d0999bf13ef1ae670c536d2aef3709894 |
|
08-Apr-2014 |
Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com> |
fio: fix s390 time accounting The current timer implementation could cause time warps on s390 which ends up as time bound jobs that would never end, because they always reset themself to the old time. When touching this code anyway, we also change it to use the faster stckf and avoid the calibration as we can control the result to be usecs. This also eliminates a few calculations cycle->usec in the hot path for the timer. In case other architectures have similar improved timers that might not be usec based, but nsec based or such a thing any architecture can set ARCH_CPU_CLOCK_CYCLES_PER_USEC to an appropriate per-arch value. This leaves the infrastructure open for others and the compiler will throw our division by 1 away anyway. Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com> Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
10aa136bddbaa7c845ab4eacb4a9a4a88d6657a3 |
|
02-Apr-2014 |
Jens Axboe <axboe@fb.com> |
Cleanup symbols that should be static Run analysis on symbols not used outside of their current file, turn them into statics. Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
225ba9e3433cf27d8ff7b213d9f78b7ef2776c70 |
|
26-Feb-2014 |
Jens Axboe <axboe@fb.com> |
Branch and cache miss speedups Just some low hanging fruit. Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/gettime.c
|
572cfb3f4d2cbf22291b395f2bb41facdc17ce86 |
|
06-Dec-2013 |
Jens Axboe <axboe@kernel.dk> |
Calloc() cleanup Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
4e0a8fa2593006505b7f4e18931a201d221b49e9 |
|
15-Apr-2013 |
Jens Axboe <axboe@kernel.dk> |
Fixup bad logging types Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
b4ea84daaf58566fe21e50d6540a8bc287d91863 |
|
11-Apr-2013 |
Jens Axboe <axboe@kernel.dk> |
Fix a few 4.8 extra anal warnings Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
0f78b22cb13d2e59b134ee80bafa669679504bd6 |
|
26-Feb-2013 |
Jens Axboe <axboe@kernel.dk> |
gettime: print 64-bit variable with ULL Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
58002f9af5a2bdf3f20c7f427b62202c2564de2e |
|
25-Feb-2013 |
Jens Axboe <axboe@kernel.dk> |
gettime: use 32-bit atomic sequences Not all platforms have 64-bit wide atomic sync_and_fetch(). If we just check for overflow, it should be OK to use a 32-bit sequence number. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
4b91ee8fd12c72bd76ce9f5ff9116626b48566a0 |
|
25-Feb-2013 |
Jens Axboe <axboe@kernel.dk> |
Fixup wrong types for dprint() Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
e259879ea353f5695a8be662b2748c4f4d0918d9 |
|
24-Feb-2013 |
Jens Axboe <axboe@kernel.dk> |
gettime: add some sanity checks to platform clock Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
80da8a8fbbc82356eee6aaad7ac7a28443f8dff6 |
|
21-Feb-2013 |
Bruce Cran <bruce@cran.org.uk> |
Declare 'prev' and 'this' outside the loop to avoid clang warning about 'prev' being uninitialized Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
7189c969816dbea1c4c73209e61332b75cf882c7 |
|
03-Feb-2013 |
Jens Axboe <axboe@kernel.dk> |
gettime: fixup AMD constant TSC detection Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
372fd659ee6a652d373ae0b4420c23c5fa9e4dc0 |
|
02-Feb-2013 |
Jens Axboe <axboe@kernel.dk> |
clock: hardwire tsc as unreliable on Solaris for now Need to double check the cpuid test, it probably only is reliable on Intel. Need to check the CPU vendor and flags appropriately. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
ba458c2f1d12c54fb4cfd4918a4e4d72d84b55a4 |
|
21-Jan-2013 |
Jens Axboe <axboe@kernel.dk> |
gettime: use proper uint64_t types where needed Windows has 32-bit longs even on 64-bit, so we risk overflowing. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
d5e3f5d8ef7fab70288aa57c8660bc3d2199655f |
|
18-Jan-2013 |
Jens Axboe <axboe@kernel.dk> |
Add info log on whether tsc is reliable or not for --cpuclock-test Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
67bf982340d95ca98098ea050b54b4c7adb116c0 |
|
10-Jan-2013 |
Jens Axboe <axboe@kernel.dk> |
Add configure script Get rid of all the fragile guessing and checking of features, and roll a configure script instead. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
aa60bc582119e8fcd4588dc5820c1cbcab599984 |
|
04-Jan-2013 |
Jens Axboe <axboe@kernel.dk> |
time: convert to uint64_t Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
b0ff22d7b23118b6c7dc56f2256ce6dde634422a |
|
01-Jan-2013 |
Jens Axboe <axboe@kernel.dk> |
gettime: even rounding, don't always round up Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
4de98eb0e68314ba36fcfc2722a1c9b3bc5d3318 |
|
01-Jan-2013 |
Jens Axboe <axboe@kernel.dk> |
Move 'tsc_reliable' outside of ARCH_HAVE_CPU_CLOCK Otherwise we fail building on architectures that do not define it, as reported by Dan: cc -o gettime.o -c -std=gnu99 -Wwrite-strings -Wall -O3 -g -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m31 -march=z9-109 -mtune=z10 -DFIO_VERSION='"fio-2.0.12.2"' -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -DFIO_INC_DEBUG gettime.c gettime.c: In function 'fio_clock_init': gettime.c:317:6: error: 'tsc_reliable' undeclared (first use in this function) gettime.c:317:6: note: each undeclared identifier is reported only once for each function it appears in make: *** [gettime.o] Error 1 Reported-by: Dan Horák <dan@danny.cz> Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
71339117638469372f703332d8b969382b12c49b |
|
21-Dec-2012 |
Jens Axboe <axboe@kernel.dk> |
clock: turn expensive division into multiply + cheap division On x86-64, dividing by a variable turns into a hugely expensive divq. It's much cheaper to invert the division. Instead of dividing clocks by clocks-per-usec, multiply by a 16M/clocks-per-usec constant instead. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
9ff1c070210a697c599abd1019737d79cd3351e6 |
|
20-Dec-2012 |
Jens Axboe <axboe@kernel.dk> |
Use clock_gettime() for CPU clock calibration gettimeofday() has very poor resolution on some platforms. So use clock_gettime() instead. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
93f0b09a7861b90086d8460eca4805dbbf778402 |
|
18-Dec-2012 |
Jens Axboe <axboe@kernel.dk> |
gettime: make last_cycles thread local too Avoids a lot of cache line bouncing for threads. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
5d879392c0e4025e508cce8118f6fc13ee57cc0e |
|
18-Dec-2012 |
Jens Axboe <axboe@kernel.dk> |
gettime: use pthread_{set,get}specific() for TLS __thread doesn't work on OSX at least (thanks...), so resort to using the pthread functions to maintaining a per-thread clock check. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
1d69e8acd7d338822bfe9630e7cdceee159c7bd2 |
|
18-Dec-2012 |
Jens Axboe <axboe@kernel.dk> |
gettime: fix race/bug with threads and time keeping Sam writes: First, the 1 second latency events come in batches and those batches occur suspiciously close to a usec wrap (0.999999 us -> 1.000000 us). Second, if you subtract exactly 1 second from these outlier latencies, the remaining amount is very close to what our instrumented low level driver records for the IO latency and consistent with the expected latencies of our SSD. Similarly, the tv_usec portion of the timeval structs shows increasing values. See snippet below. Format is like start: <start_time.tv_sec>.<start_time.tv_usec> latency: 1004657 us, lba: 1111289192, start: 1355776806.995294 issue: 1355776806.995312 complete: 1355776807.999969 latency: 1000494 us, lba: 203093568, start: 1355776806.999456 issue: 1355776806.999475 complete: 1355776807.999969 latency: 1000404 us, lba: 551350992, start: 1355776806.999546 issue: 1355776806.999565 complete: 1355776807.999969 latency: 1000477 us, lba: 449672928, start: 1355776806.999484 issue: 1355776806.999492 complete: 1355776807.999969 All this pointed to the time collection code being buggy. Reviewing the code, I spotted this in fio_gettime(): /* * If Linux is using the tsc clock on non-synced processors, * sometimes time can appear to drift backwards. Fix that up. */ if (last_tv_valid) { if (tp->tv_sec < last_tv.tv_sec) tp->tv_sec = last_tv.tv_sec; else if (last_tv.tv_sec == tp->tv_sec && tp->tv_usec < last_tv.tv_usec) tp->tv_usec = last_tv.tv_usec; } last_tv_valid = 1; memcpy(&last_tv, tp, sizeof(*tp)); This does not appear to be multi-thread safe. Pre-emption can occur between either comparison and the subsequent update. Commenting it out makes the problem go away (at the expense of being subject to drift). How about making last_tv & last_tv_valid thread-local? Reported-by: Sam Bradshaw <sbradshaw@micron.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
4f1d43c22e2a87d0341e607bd1691d57dd2ef2b8 |
|
17-Dec-2012 |
Jens Axboe <axboe@kernel.dk> |
gettime: include per-cpu clock calibration in cpu clock test Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
b9b3498e77057f4c9275da74e9e2628200460b8c |
|
17-Dec-2012 |
Jens Axboe <axboe@kernel.dk> |
gettime: locking fix and debug check for identical sequence Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
7d11f87148b8ec0f5627c701c934c752bf774029 |
|
17-Dec-2012 |
Jens Axboe <axboe@kernel.dk> |
cpu clock: add independent test for monotonic/sane TSC Fire up all threads on the system, checking the clock 100,000 times on each. Then collect and compare results, to ensure we never have a clock that goes backwards. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
01423eae85a071ff6acee870edd696c7929723ba |
|
14-Dec-2012 |
Jens Axboe <axboe@kernel.dk> |
clock: ensure that we re-init if the clocksource changes from the default Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
d7abad3d0a2aab71707264ae088ecc19c88585dc |
|
10-Dec-2012 |
Jens Axboe <axboe@kernel.dk> |
cpu clock: round up when dividing by samples Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
89db727d5baaf32bc665c2addd844da5541249bb |
|
10-Dec-2012 |
Jens Axboe <axboe@kernel.dk> |
gettime: fix CPU calibration reported mean Bug introduced in fa80feae. It only affected the reported mean if --debug=time was used, cosmetic issue. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
c011000deaf5131861a2bd1fb2ac72582418e891 |
|
10-Dec-2012 |
Jens Axboe <axboe@kernel.dk> |
gettime: calibration rounding error Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
486332e567826eb284bfd9064440867f31fccd7f |
|
10-Dec-2012 |
Jens Axboe <axboe@kernel.dk> |
Increase CPU clock calibration accuracy Lets throw some more loops at it, it reduces the noise. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
fa80feae51331fb170e784459fa1359d7ec3a963 |
|
09-Dec-2012 |
Jens Axboe <axboe@kernel.dk> |
Add check for invariant TSC on x86 and use TSC is default clock if reliable TSC is by far the fastest clock we can use. Check the CPUID bits for whether it is both constant rate AND synced across cores. If it is, we can use it as our default clock source. Fio will default to this clock source on x86 if no other clock source is specifically given with clocksource= in the job file. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
39ab7da23768081db50b0026e0c2a8e38752e7a4 |
|
06-Nov-2012 |
Jens Axboe <axboe@kernel.dk> |
Move code around to satisfy t/stest linkage Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
521da527743088a9bd2ab882f8b64799d49d5848 |
|
02-Aug-2012 |
Jens Axboe <axboe@kernel.dk> |
mutex: make 0/1 FIO_MUTEX_LOCKED and FIO_MUTEX_UNLOCKED Makes the API look cleaner. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
16de1bf91ca80e62ce257a24cae471fab140bbe0 |
|
20-Feb-2012 |
Bruce Cran <bruce@cran.org.uk> |
Add FIO_PREFERRED_CLOCK_SOURCE to allow selection of clock source on a per-platform basis. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
a73468166ef0a85d489dcdc291229a3d9ad9cfc1 |
|
09-Feb-2012 |
Jens Axboe <axboe@kernel.dk> |
Add gettime.h time.h is a mix of gettime.c and time.c Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
783a3eb15f143d26eed5fd1c943f238057f3ee52 |
|
09-Feb-2012 |
Jens Axboe <axboe@kernel.dk> |
Move gtod thread to gettime.c Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
5bd9c78ce361e3a924013299c53fd823fba05818 |
|
03-Feb-2012 |
Jens Axboe <axboe@kernel.dk> |
Use CLOCK_MONOTONIC if we can Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/gettime.c
|
03e20d687566753b90383571e5e152c5142bdffd |
|
02-Jan-2011 |
Bruce Cran <bruce@cran.org.uk> |
First snapshot of FIO for Windows Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/gettime.c
|
09a324028d68c485a8c4b33257b262123c27394f |
|
15-Aug-2010 |
Jens Axboe <jaxboe@fusionio.com> |
Fixup misuse of get_cpu_clock() Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/gettime.c
|
c223da83e253b0057bb029bf4fbb55a05844215c |
|
24-Mar-2010 |
Jens Axboe <jens.axboe@oracle.com> |
Add support for specific clock sources Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/gettime.c
|
ba3e4e0ca697f83c97a250d85a74506ace69de2c |
|
09-Dec-2009 |
Radha Ramachandran <radha@google.com> |
Fix rate option with iodepth > 1 The rate option currently doesnt work when used with libaio engine. The math currently, calculates the time t2 (when the I/O completed) - t1 (when the io_u unit was created) as the time it takes for the I/O and the bandwidth for the rate calculation is calculated from that. This math will work correctly for sync engine as there is only one io in progress at a time, but for libaio engine, when there are multiple I/Os queued, the same time (as in from t1 to t2) could be attributed to other I/Os as well so the actual bandwidth is actually higher. I have a patch, but this is more brute force where I take the total bytes read/written divided by the time since I/Os started to calculate the bandwidth and decide on the time that needs to be spent sleeping (if any).This is a little more heavy weight than the previous math. I think there are probably simpler/cleaner solutions than this but this is the current patch I have for it. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/gettime.c
|
d481e00608dc118e646b6fee9c9292c1ab35448f |
|
04-Dec-2009 |
Jens Axboe <jens.axboe@oracle.com> |
Move back to realtime clock On some systems MONOTONIC still causes a hang. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/gettime.c
|
be4ecfdf6c8daa75c4df8ac875c9a87da80d81a0 |
|
08-Dec-2008 |
Jens Axboe <jens.axboe@oracle.com> |
Add gtod_cpu option for pinning gettimeofday() to a single CPU Similar to what real life products sometimes do, offload gettimeofday() calls to a single CPU and have that update the current time into a shared memory location. This option pins a specific CPU for that job, and excludes it from participating in any of the IO jobs. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/gettime.c
|
3e4889209b86409283d1e87bb6b5c9980495c2c6 |
|
13-Nov-2008 |
Jens Axboe <jens.axboe@oracle.com> |
Fix backwards clock on tsc source with Linux Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/gettime.c
|
01743ee1718e7ec4b16ae3e53c8f64900c6052cc |
|
02-Jun-2008 |
Jens Axboe <jens.axboe@oracle.com> |
Rename list_* function and file to flist_ to avoid conflict with FreeBSD Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/gettime.c
|
5ec10eaad3b09875b91e19a20bbdfa06f2117562 |
|
06-Mar-2008 |
Jens Axboe <jens.axboe@oracle.com> |
Style fixups Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/gettime.c
|
317b95d07d4921d2594a1be6e014c9c2d062fe75 |
|
02-Apr-2007 |
Jens Axboe <jens.axboe@oracle.com> |
Move os/arch/compiler headers into directories Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/gettime.c
|
130fe6161f5e6d2bb98537affdc1573f676e2764 |
|
06-Mar-2007 |
Jens Axboe <jens.axboe@oracle.com> |
Default to using gettimeofday() Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/gettime.c
|
7e326f3bbc7e6f23f2b4c99282f73a7948d02637 |
|
13-Jan-2007 |
Jens Axboe <jens.axboe@oracle.com> |
[PATCH] Remove the time init check We cannot control constructor ordering easily, hence the check code was also in fio_gettime(). Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/gettime.c
|
1e97cce9f5a87a67293a05ec4533ed6968698b2e |
|
05-Dec-2006 |
Jens Axboe <jens.axboe@oracle.com> |
[PATCH] Fix warnings from icc icc spewed a bunch of warnings on building fio, but it did actually build and work. Some of them are real bugs, most are just "helpful" warnings. icc doesn't like pointer arithmetic, however these are not fixed up. It works as-is, just ignore those class of warnings. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/gettime.c
|
f5cc024a0ab9f51b1cb9fcd980b85199bdf011b0 |
|
24-Nov-2006 |
Jens Axboe <jens.axboe@oracle.com> |
[PATCH] Comment typo Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/gettime.c
|
02bcaa8c31feb93c61b701d143a7eea3efd2124d |
|
24-Nov-2006 |
Jens Axboe <jens.axboe@oracle.com> |
[PATCH] Time and seek optimizations We did too many gettimeofday() calls, this patch cuts the number by 40%. Use clock_gettime() MONOTONIC instead, it is faster on my system at least. This patch also optimizes calling lseek() only when necessary for the sync io engine. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/gettime.c
|