The following changes since commit c7165b8dc2b5e6c72ac79d9979cc8971f2eeac30: configure: enable e4defrag engine regardless of MOVE_EXTENT compile test (2013-01-12 10:27:53 +0100) are available in the git repository at: git://git.kernel.dk/fio.git master Bruce Cran (3): Add CONFIG_64BIT_LLP64, CONFIG_POSIX_FALLOCATE and CONFIG_LINUX_FALLOCATE to Makefile. Fix configure script for 64-bit Windows. Fix typo (READ/DDIR_READ). Jens Axboe (1): Improve documentation for end_fsync HOWTO | 2 +- Makefile | 10 +++++++++- configure | 18 ++++++++++++++---- engines/windowsaio.c | 7 ------- fio.1 | 2 +- io_u.c | 4 ++-- 6 files changed, 27 insertions(+), 16 deletions(-) --- Diff of recent changes: diff --git a/HOWTO b/HOWTO index 014b7f3..d5be376 100644 --- a/HOWTO +++ b/HOWTO @@ -704,7 +704,7 @@ overwrite=bool If true, writes to a file will always overwrite existing and is large enough for the specified write phase, nothing will be done. -end_fsync=bool If true, fsync file contents when the job exits. +end_fsync=bool If true, fsync file contents when a write stage has completed. fsync_on_close=bool If true, fio will fsync() a dirty file on close. This differs from end_fsync in that it will happen on every diff --git a/Makefile b/Makefile index 299e5e9..03e46fa 100644 --- a/Makefile +++ b/Makefile @@ -31,13 +31,15 @@ SOURCE := gettime.c fio.c ioengines.c init.c stat.c log.c time.c filesetup.c \ json.c lib/zipf.c lib/axmap.c lib/lfsr.c gettime-thread.c \ helpers.c lib/flist_sort.c +ifdef CONFIG_64BIT_LLP64 + CFLAGS += -DBITS_PER_LONG=32 +endif ifdef CONFIG_64BIT CFLAGS += -DBITS_PER_LONG=64 endif ifdef CONFIG_32BIT CFLAGS += -DBITS_PER_LONG=32 endif - ifdef CONFIG_LIBAIO CFLAGS += -DCONFIG_LIBAIO SOURCE += engines/libaio.c @@ -128,6 +130,12 @@ endif ifdef CONFIG_TLS_THREAD CFLAGS += -DCONFIG_TLS_THREAD endif +ifdef CONFIG_POSIX_FALLOCATE + CFLAGS += -DCONFIG_POSIX_FALLOCATE +endif +ifdef CONFIG_LINUX_FALLOCATE + CFLAGS += -DCONFIG_LINUX_FALLOCATE +endif ifeq ($(UNAME), Linux) SOURCE += diskutil.c fifo.c blktrace.c cgroup.c trim.c engines/sg.c \ diff --git a/configure b/configure index 3558bf4..1ab2c7a 100755 --- a/configure +++ b/configure @@ -104,8 +104,20 @@ cc="${CC-${cross_prefix}gcc}" if check_define __linux__ ; then targetos="Linux" -elif check_define _WIN32 ; then - targetos='MINGW32' +elif test `uname -o` = Cygwin ; then + echo "Forcing known good options on Windows" + echo "CC=x86_64-w64-mingw32-gcc" >> $config_host_mak + echo "CONFIG_64BIT_LLP64=y" >> $config_host_mak + echo "CONFIG_CLOCK_GETTIME=y" >> $config_host_mak + echo "CONFIG_CLOCK_MONOTONIC=y" >> $config_host_mak + echo "CONFIG_GETTIMEOFDAY=y" >> $config_host_mak + echo "CONFIG_FADVISE=y" >> $config_host_mak + echo "CONFIG_STRSEP=y" >> $config_host_mak + echo "CONFIG_SOCKLEN_T=y" >> $config_host_mak + echo "CONFIG_POSIX_FALLOCATE=y" >> $config_host_mak + echo "CONFIG_FADVISE=y" >> $config_host_mak + echo "CONFIG_SFAA=y" >> $config_host_mak + exit elif check_define __OpenBSD__ ; then targetos='OpenBSD' elif check_define __sun__ ; then @@ -209,8 +221,6 @@ if test -z $CC; then else CC=gcc fi - elif test "$targetos" = "MINGW32"; then - CC=x86_64-w64-mingw32-gcc fi fi diff --git a/engines/windowsaio.c b/engines/windowsaio.c index f1b0bc5..773f027 100644 --- a/engines/windowsaio.c +++ b/engines/windowsaio.c @@ -126,13 +126,6 @@ static int win_to_posix_error(DWORD winerr) return winerr; } -int sync_file_range(int fd, off64_t offset, off64_t nbytes, - unsigned int flags) -{ - errno = ENOSYS; - return -1; -} - static int fio_windowsaio_init(struct thread_data *td) { struct windowsaio_data *wd; diff --git a/fio.1 b/fio.1 index 5b65e07..2f7728a 100644 --- a/fio.1 +++ b/fio.1 @@ -561,7 +561,7 @@ Also see the sync_file_range(2) man page. This option is Linux specific. If writing, setup the file first and do overwrites. Default: false. .TP .BI end_fsync \fR=\fPbool -Sync file contents when job exits. Default: false. +Sync file contents when a write stage has completed. Default: false. .TP .BI fsync_on_close \fR=\fPbool If true, sync file contents on close. This differs from \fBend_fsync\fR in that diff --git a/io_u.c b/io_u.c index 87b8019..3de04ef 100644 --- a/io_u.c +++ b/io_u.c @@ -182,7 +182,7 @@ static int get_next_rand_offset(struct thread_data *td, struct fio_file *f, * If sort not enabled, or not a pure random read workload without * any stored write metadata, just return a random offset */ - if (!td->o.verifysort_nr || !(ddir == READ && td->o.do_verify && + if (!td->o.verifysort_nr || !(ddir == DDIR_READ && td->o.do_verify && td->o.verify != VERIFY_NONE && td_random(td))) return get_off_from_method(td, f, ddir, b); @@ -292,7 +292,7 @@ static int get_next_block(struct thread_data *td, struct io_u *io_u, ret = 1; } } - + if (!ret) { if (offset != -1ULL) io_u->offset = offset; -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html