From: Jens Axboe Date: Tue, 5 Sep 2017 21:37:36 +0000 (-0600) Subject: Merge branch 'windows_io_hint' of https://github.com/sitsofe/fio X-Git-Tag: fio-3.1~16 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=83a9e706745e5a5affd5475b884e42d0100f783f;hp=f20a86a792dd13d66b0f7aa1f8ec05f9bf5f149d Merge branch 'windows_io_hint' of https://github.com/sitsofe/fio --- diff --git a/.travis.yml b/.travis.yml index 795c0fce..94f69fb5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,12 +5,16 @@ compiler: - clang - gcc env: + matrix: + - BUILD_ARCH="x86" + - BUILD_ARCH="x86_64" global: - MAKEFLAGS="-j 2" matrix: include: - os: osx compiler: clang # Workaround travis setting CC=["clang", "gcc"] + env: BUILD_ARCH="x86_64" # Build using the 10.12 SDK but target and run on OSX 10.11 # - os: osx # compiler: clang @@ -19,12 +23,29 @@ matrix: # Build on the latest OSX version (will eventually become obsolete) - os: osx compiler: clang - osx_image: xcode8.2 + osx_image: xcode8.3 + env: BUILD_ARCH="x86_64" exclude: - os: osx compiler: gcc + exclude: + - os: linux + compiler: clang + env: BUILD_ARCH="x86" # Only do the gcc x86 build to reduce clutter before_install: - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq update; fi - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install -qq -y libaio-dev libnuma-dev libz-dev librbd-dev glusterfs-common libibverbs-dev librdmacm-dev; fi + - EXTRA_CFLAGS="-Werror" + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then + pkgs=(libaio-dev libnuma-dev libz-dev librbd-dev libibverbs-dev librdmacm-dev); + if [[ "$BUILD_ARCH" == "x86" ]]; then + pkgs=("${pkgs[@]/%/:i386}"); + pkgs+=(gcc-multilib); + EXTRA_CFLAGS="${EXTRA_CFLAGS} -m32"; + else + pkgs+=(glusterfs-common); + fi; + sudo apt-get -qq update; + sudo apt-get install --no-install-recommends -qq -y "${pkgs[@]}"; + fi script: - - ./configure --extra-cflags="-Werror" && make && make test + - ./configure --extra-cflags="${EXTRA_CFLAGS}" && make + - make test diff --git a/engines/glusterfs.c b/engines/glusterfs.c index 2abc283f..981dfa35 100644 --- a/engines/glusterfs.c +++ b/engines/glusterfs.c @@ -165,11 +165,11 @@ int fio_gf_open_file(struct thread_data *td, struct fio_file *f) if (td_read(td)) { if (glfs_lstat(g->fs, f->file_name, &sb) || sb.st_size < f->real_file_size) { - dprint(FD_FILE, "fio extend file %s from %ld to %ld\n", - f->file_name, sb.st_size, f->real_file_size); + dprint(FD_FILE, "fio extend file %s from %jd to %" PRIu64 "\n", + f->file_name, (intmax_t) sb.st_size, f->real_file_size); ret = glfs_ftruncate(g->fd, f->real_file_size); if (ret) { - log_err("failed fio extend file %s to %ld\n", + log_err("failed fio extend file %s to %" PRIu64 "\n", f->file_name, f->real_file_size); } else { unsigned long long left; @@ -190,7 +190,7 @@ int fio_gf_open_file(struct thread_data *td, struct fio_file *f) r = glfs_write(g->fd, b, bs, 0); dprint(FD_IO, - "fio write %d of %ld file %s\n", + "fio write %d of %" PRIu64 " file %s\n", r, f->real_file_size, f->file_name); diff --git a/engines/glusterfs_async.c b/engines/glusterfs_async.c index f46cb263..97271d67 100644 --- a/engines/glusterfs_async.c +++ b/engines/glusterfs_async.c @@ -92,7 +92,7 @@ static void gf_async_cb(glfs_fd_t * fd, ssize_t ret, void *data) struct io_u *io_u = data; struct fio_gf_iou *iou = io_u->engine_data; - dprint(FD_IO, "%s ret %lu\n", __FUNCTION__, ret); + dprint(FD_IO, "%s ret %zd\n", __FUNCTION__, ret); iou->io_complete = 1; } diff --git a/filesetup.c b/filesetup.c index 5e8ea357..b51ab35c 100644 --- a/filesetup.c +++ b/filesetup.c @@ -15,7 +15,6 @@ #include "os/os.h" #include "hash.h" #include "lib/axmap.h" -#include "lib/memalign.h" #ifdef CONFIG_LINUX_FALLOCATE #include @@ -110,7 +109,7 @@ static int extend_file(struct thread_data *td, struct fio_file *f) { int new_layout = 0, unlink_file = 0, flags; unsigned long long left; - unsigned int bs, alloc_size = 0; + unsigned int bs; char *b = NULL; if (read_only) { @@ -147,8 +146,6 @@ static int extend_file(struct thread_data *td, struct fio_file *f) flags |= O_CREAT; if (new_layout) flags |= O_TRUNC; - if (td->o.odirect) - flags |= OS_O_DIRECT; #ifdef WIN32 flags |= _O_BINARY; @@ -162,14 +159,8 @@ static int extend_file(struct thread_data *td, struct fio_file *f) if (err == ENOENT && !td->o.allow_create) log_err("fio: file creation disallowed by " "allow_file_create=0\n"); - else { - if (err == EINVAL && (flags & OS_O_DIRECT)) - log_err("fio: looks like your filesystem " - "does not support " - "direct=1/buffered=0\n"); - + else td_verror(td, err, "open"); - } return 1; } @@ -196,18 +187,14 @@ static int extend_file(struct thread_data *td, struct fio_file *f) } } - if (td->o.odirect && !OS_O_DIRECT && fio_set_directio(td, f)) - goto err; - left = f->real_file_size; bs = td->o.max_bs[DDIR_WRITE]; if (bs > left) bs = left; - alloc_size = bs; - b = fio_memalign(page_size, alloc_size); + b = malloc(bs); if (!b) { - td_verror(td, errno, "fio_memalign"); + td_verror(td, errno, "malloc"); goto err; } @@ -260,14 +247,14 @@ static int extend_file(struct thread_data *td, struct fio_file *f) f->io_size = f->real_file_size; } - fio_memfree(b, alloc_size); + free(b); done: return 0; err: close(f->fd); f->fd = -1; if (b) - fio_memfree(b, alloc_size); + free(b); return 1; }