Recent changes (master)
The following changes since commit 8847ae4cd2e3d0d73dd7d7c93c5d6da96b71d174:
backend: don't dereference ->io_ops in reap_threads() (2017-10-10 11:54:54 -0600)
are available in the git repository at:
git://git.kernel.dk/fio.git master
for you to fetch changes up to 447b94e10bddab8078f35c423ca1e3c3f0b1be38:
Fix overflow in percentile calculation for Windows (2017-10-11 16:26:00 -0600)
----------------------------------------------------------------
Andrzej Jakowski (1):
Fix overflow in percentile calculation for Windows
Jens Axboe (10):
Merge branch 'ci_and_configure' of https://github.com/sitsofe/fio
Merge branch 'windowaio_invalidate' of https://github.com/sitsofe/fio
engines/windowsaio: style
Merge branch 'fgp_fixes' of https://github.com/sitsofe/fio
fio: kill unused TD_F_ flag
fio: rearrange TD_F_ flag logic
Error if td flags overlap with engine flags
Fix broken path separator definition on Windows
Windows mkdir() fix
fio: kill td_ioengine_flags()
Josef Bacik (4):
convert FIO_OS_PATH_SEPARATOR to a character create subdirs if specified in the filename_format use mkdir instead of mkdirat
add documentation about filename_format directory behavior
Sitsofe Wheeler (4):
appveyor: install zlib and minor clean ups
configure: update compiler probing
fio_generate_plots: cope with per_job_logs filenames
windowsaio: add best effort cache invalidation
HOWTO | 7 +++++ appveyor.yml | 11 +++++--- configure | 68 ++++++++++++++++++++++++++++++++++++------------ engines/windowsaio.c | 43 ++++++++++++++++++++++++++++++ filesetup.c | 43 +++++++++++++++++++++++++++++- fio.1 | 6 +++++ fio.h | 58 +++++++++++++++++++++++++---------------- libfio.c | 2 ++ os/os-windows.h | 2 +- os/os.h | 2 +- stat.c | 2 +- tools/fio_generate_plots | 26 +++++++++++------- verify.c | 4 +-- 13 files changed, 216 insertions(+), 58 deletions(-)
---
Diff of recent changes:
HOWTO +7 -0
@@ -795,6 +795,13 @@ Target file/device named :file:`testfiles.4`. The default of :file:`$jobname.$jobnum.$filenum` will be used if no other format specifier is given. + If you specify a path then the directories will be created up to the + main directory for the file. So for example if you specify + ``filename_format=a/b/c/$jobnum`` then the directories a/b/c will be + created before the file setup part of the job. If you specify + :option:`directory` then the path will be relative that directory, + otherwise it is treated as the absolute path. + .. option:: unique_filename=bool To avoid collisions between networked clients, fio defaults to prefixing any
appveyor.yml +8 -3
@@ -1,16 +1,21 @@ -clone_depth: 50 +clone_depth: 1 environment: + CYG_MIRROR: http://cygwin.mirror.constant.com + CYG_ROOT: C:\cygwin64 MAKEFLAGS: -j 2 matrix: - platform: x86_64 BUILD_ARCH: x64 - CYG_ROOT: C:\cygwin64 + PACKAGE_ARCH: x86_64 CONFIGURE_OPTIONS: - platform: x86 BUILD_ARCH: x86 - CYG_ROOT: C:\cygwin + PACKAGE_ARCH: i686 CONFIGURE_OPTIONS: --build-32bit-win +install: + - '%CYG_ROOT%\setup-x86_64.exe --quiet-mode --no-shortcuts --only-site --site "%CYG_MIRROR%" --packages "mingw64-%PACKAGE_ARCH%-zlib" > NULL' + build_script: - SET PATH=%CYG_ROOT%\bin;%PATH% - 'bash.exe -lc "cd \"${APPVEYOR_BUILD_FOLDER}\" && ./configure --extra-cflags=\"-Werror\" ${CONFIGURE_OPTIONS} && make.exe'
configure +51 -17
115 lines not on this page · raw message
engines/windowsaio.c +43 -0
55 lines not on this page · raw message
filesetup.c +42 -1
61 lines not on this page · raw message
fio.1 +6 -0
@@ -578,6 +578,12 @@ fio generate filenames that are shared between the two. For instance, if `testfiles.$filenum' is specified, file number 4 for any job will be named `testfiles.4'. The default of `$jobname.$jobnum.$filenum' will be used if no other format specifier is given. +.P +If you specify a path then the directories will be created up to the main +directory for the file. So for example if you specify `a/b/c/$jobnum` then the +directories a/b/c will be created before the file setup part of the job. If you +specify \fBdirectory\fR then the path will be relative that directory, otherwise +it is treated as the absolute path. .RE .TP .BI unique_filename \fR=\fPbool
fio.h +36 -22
70 lines not on this page · raw message
libfio.c +2 -0
@@ -365,6 +365,8 @@ int initialize_fio(char *envp[])compiletime_assert ((offsetof(struct thread_options_pack , latency_percentile) %8 ) ==0 ,"latency_percentile" );compiletime_assert ((offsetof(struct jobs_eta , m_rate) %8 ) ==0 ,"m_rate" ); +compiletime_assert (__TD_F_LAST <=TD_ENG_FLAG_SHIFT ,"TD_ENG_FLAG_SHIFT" ); + err =endian_check ();if (err) {log_err ("fio: endianness settings appear wrong.\n" );
os/os-windows.h +1 -1
@@ -37,7 +37,7 @@ int rand_r(unsigned *);#define FIO_PREFERRED_ENGINE "windowsaio"#define FIO_PREFERRED_CLOCK_SOURCE CS_CGETTIME -#define FIO_OS_PATH_SEPARATOR "\\" +#define FIO_OS_PATH_SEPARATOR '\\'#define FIO_MAX_CPUS MAXIMUM_PROCESSORS
os/os.h +1 -1
@@ -155,7 +155,7 @@ extern int fio_cpus_split(os_cpu_mask_t *mask, unsigned int cpu);#endif #ifndef FIO_OS_PATH_SEPARATOR -#define FIO_OS_PATH_SEPARATOR "/" +#define FIO_OS_PATH_SEPARATOR '/'#endif #ifndef FIO_PREFERRED_CLOCK_SOURCE
stat.c +1 -1
@@ -139,7 +139,7 @@ unsigned int calc_clat_percentiles(unsigned int *io_u_plat, unsigned long nr, fio_fp64_t *plist, unsigned long long **output, unsigned long long *maxv, unsigned long long *minv) { - unsigned long sum = 0; + unsigned long long sum = 0;unsigned int len, i, j =0 ;unsigned int oval_len =0 ;unsigned long long *ovals =NULL ;
tools/fio_generate_plots +16 -10
@@ -93,20 +93,26 @@ plot () { i=0 - for x in *_"$FILETYPE".log + for x in *_"$FILETYPE".log *_"$FILETYPE".*.log do - i=$((i+1)) - PT=$(echo $x | sed s/_"$FILETYPE".log//g) - if [ ! -z "$PLOT_LINE" ] - then - PLOT_LINE=$PLOT_LINE", " + if [ -e "$x" ]; then + i=$((i+1)) + PT=$(echo $x | sed 's/\(.*\)_'$FILETYPE'\(.*\).log$/\1\2/') + if [ ! -z "$PLOT_LINE" ] + then + PLOT_LINE=$PLOT_LINE", " + fi + + DEPTH=$(echo $PT | cut -d "-" -f 4) + PLOT_LINE=$PLOT_LINE"'$x' using (\$1/1000):(\$2/$SCALE) title \"Queue depth $DEPTH\" with lines ls $i" fi - - DEPTH=$(echo $PT | cut -d "-" -f 4) - PLOT_LINE=$PLOT_LINE"'$x' using (\$1/1000):(\$2/$SCALE) title \"Queue depth $DEPTH\" with lines ls $i" - done + if [ $i -eq 0 ]; then + echo "No log files found" + exit 1 + fi + OUTPUT="set output \"$TITLE-$FILETYPE.svg\" " echo " $PLOT_TITLE ; $YAXIS ; $DEFAULT_OPTS ; show style lines ; $OUTPUT ; plot " $PLOT_LINE | $GNUPLOT -
verify.c +2 -2
@@ -252,7 +252,7 @@ static void dump_buf(char *buf, unsigned int len, unsigned long long offset,memset (fname,0 ,sizeof (fname));if (aux_path) -sprintf (fname,"%s%s" , aux_path,FIO_OS_PATH_SEPARATOR ); +sprintf (fname,"%s%c" , aux_path,FIO_OS_PATH_SEPARATOR );strncpy (fname +strlen (fname),basename (ptr), buf_left -1 );
@@ -1726,7 +1726,7 @@ void verify_save_state(int mask)char prefix[PATH_MAX ];if (aux_path) -sprintf (prefix,"%s%slocal" , aux_path,FIO_OS_PATH_SEPARATOR ); +sprintf (prefix,"%s%clocal" , aux_path,FIO_OS_PATH_SEPARATOR );else strcpy (prefix,"local" );