Recent changes (master)
The following changes since commit 855f03627f2bce6a7f725fe6cc92e7ebe8d39deb:
fnv: work with non-64-bit aligned chunks of data (2017-02-07 15:11:37 -0700)
are available in the git repository at:
git://git.kernel.dk/fio.git master
for you to fetch changes up to 06cbb3c71fc75dbeddebb53c8f0a2ea95dc28228:
Windows: re-enable the mmap ioengine and fix static asserts (2017-02-13 15:38:59 -0700)
----------------------------------------------------------------
Jens Axboe (1):
gfio: fix git location for fio
Rebecca Cran (3):
Windows: Update the EULA year and add more examples to the installer Fix the return type of log_err and log_info functions
Windows: re-enable the mmap ioengine and fix static asserts
Sitsofe Wheeler (1):
configure: try to disable weak linking on OSX
Tomohiro Kusumi (3):
Add a comment to clarify 941bda94
steadystate: Use calloc(3)
Be more verbose on endianness detection failure
Makefile | 1 - configure | 18 ++++++-- diskutil.h | 1 + gfio.c | 2 +- libfio.c | 36 +++++++++++++--- os/windows/eula.rtf | Bin 1060 -> 1072 bytes os/windows/examples.wxs | 112 ++++++++++++++++++++++++++++++++++++++++++------ os/windows/install.wxs | 2 +- os/windows/posix.c | 63 ++++++++++++++++++++------- steadystate.c | 9 +--- t/log.c | 4 +- 11 files changed, 198 insertions(+), 50 deletions(-)
---
Diff of recent changes:
Makefile +0 -1
@@ -179,7 +179,6 @@ ifeq ($(CONFIG_TARGET_OS), Darwin) LIBS += -lpthread -ldl endif ifneq (,$(findstring CYGWIN,$(CONFIG_TARGET_OS))) - SOURCE := $(filter-out engines/mmap.c,$(SOURCE)) SOURCE += os/windows/posix.c LIBS += -lpthread -lpsapi -lws2_32 CFLAGS += -DPSAPI_VERSION=1 -Ios/windows/posix/include -Wno-format -static
configure +14 -4
@@ -268,6 +268,17 @@ Darwin) if test -z "$cpu" && test "$(sysctl -n hw.optional.x86_64)" = "1"; then cpu="x86_64" fi + # Error at compile time linking of weak/partial symbols if possible... +cat > $TMPC <<EOF +int main(void) +{ + return 0; +} +EOF + if compile_prog "" "-Wl,-no_weak_imports" "disable weak symbols"; then + echo "Disabling weak symbols" + LDFLAGS="$LDFLAGS -Wl,-no_weak_imports" + fi ;; SunOS) # `uname -m` returns i86pc even on an x86_64 box, so default based on isainfo
@@ -314,6 +325,7 @@ CYGWIN*) output_sym "CONFIG_SCHED_IDLE" output_sym "CONFIG_TCP_NODELAY" output_sym "CONFIG_TLS_THREAD" + output_sym "CONFIG_STATIC_ASSERT" output_sym "CONFIG_IPV6" echo "CC=$CC" >> $config_host_mak echo "BUILD_CFLAGS=$CFLAGS -I../zlib -include config-host.h -D_GNU_SOURCE" >> $config_host_mak
@@ -815,14 +827,12 @@ echo "CLOCK_MONOTONIC_PRECISE $clock_monotonic_precise" # clockid_t probe clockid_t="no" cat > $TMPC << EOF -#include <stdio.h> -#include <string.h> #include <time.h> int main(int argc, char **argv) { - clockid_t cid; + volatile clockid_t cid; memset(&cid, 0, sizeof(cid)); - return clock_gettime(cid, NULL); + return 0; } EOF if compile_prog "" "$LIBS" "clockid_t"; then
diskutil.h +1 -0
@@ -114,6 +114,7 @@ extern int update_io_ticks(void);extern void setup_disk_util (void );extern void disk_util_prune_entries (void );#else +/* keep this as a function to avoid a warning in handle_du() */ static inline void print_disk_util (struct disk_util_stat *du,struct disk_util_agg *agg,int terse,struct buf_output *out)
gfio.c +1 -1
@@ -1240,7 +1240,7 @@ static void about_dialog(GtkWidget *w, gpointer data)"program-name" ,"gfio" ,"comments" ,"Gtk2 UI for fio" ,"license" , license_trans, -"website" ,"http://git.kernel.dk/?p=fio.git;a=summary" , +"website" ,"http://git.kernel.dk/cgit/fio/" ,"authors" , authors,"version" , fio_version_string, "copyright", "�� 2012 Jens Axboe <[email protected]>",
libfio.c +31 -5
@@ -311,6 +311,13 @@ int fio_set_fd_nonblocking(int fd, const char *who)return flags; } +enum { +ENDIAN_INVALID_BE =1 , +ENDIAN_INVALID_LE , +ENDIAN_INVALID_CONFIG , +ENDIAN_BROKEN , +}; +static int endian_check (void ) {union {
@@ -327,16 +334,16 @@ static int endian_check(void)#if defined(CONFIG_LITTLE_ENDIAN )if (be) -return 1 ; +return ENDIAN_INVALID_BE ;#elif defined(CONFIG_BIG_ENDIAN )if (le) -return 1 ; +return ENDIAN_INVALID_LE ;#else -return 1 ; +return ENDIAN_INVALID_CONFIG ;#endif if (!le && !be) -return 1 ; +return ENDIAN_BROKEN ;return 0 ; }
@@ -344,6 +351,7 @@ static int endian_check(void)int initialize_fio (char *envp[]) {long ps; +int err;/* * We need these to be properly 64-bit aligned, otherwise we
@@ -359,8 +367,26 @@ int initialize_fio(char *envp[])compiletime_assert ((offsetof(struct thread_options_pack , percentile_list) %8 ) ==0 ,"percentile_list" );compiletime_assert ((offsetof(struct thread_options_pack , latency_percentile) %8 ) ==0 ,"latency_percentile" ); -if (endian_check ()) { + err =endian_check (); +if (err) {log_err ("fio: endianness settings appear wrong.\n" ); +switch (err) { +case ENDIAN_INVALID_BE : +log_err ("fio: got big-endian when configured for little\n" ); +break ; +case ENDIAN_INVALID_LE : +log_err ("fio: got little-endian when configured for big\n" ); +break ; +case ENDIAN_INVALID_CONFIG : +log_err ("fio: not configured to any endianness\n" ); +break ; +case ENDIAN_BROKEN : +log_err ("fio: failed to detect endianness\n" ); +break ; +default : +assert (0 ); +break ; + }log_err ("fio: please report this to [email protected]\n" );return 1 ; }
os/windows/eula.rtf binary +0 -0
os/windows/examples.wxs +98 -14
166 lines not on this page · raw message
os/windows/install.wxs +1 -1
@@ -58,7 +58,7 @@ <ComponentGroupRef Id="examples"/> </Feature> - <Property Id="ARPURLINFOABOUT" Value="http://git.kernel.dk/?p=fio.git" /> + <Property Id="ARPURLINFOABOUT" Value="http://git.kernel.dk/cgit/fio/" /> <Property Id='ARPCONTACT'>[email protected]</Property> <Property Id='ARPHELPLINK'>http://www.spinics.net/lists/fio/</Property> <Property Id='ARPURLUPDATEINFO'>http://bluestop.org/fio/</Property>
os/windows/posix.c +48 -15
100 lines not on this page · raw message
steadystate.c +2 -7
@@ -8,13 +8,8 @@ bool steadystate_enabled = false;static void steadystate_alloc (struct thread_data *td) { -int i; - - td->ss.bw_data =malloc (td->ss.dur *sizeof (uint64_t )); - td->ss.iops_data =malloc (td->ss.dur *sizeof (uint64_t )); -/* initialize so that it is obvious if the cache is not full in the output */ -for (i =0 ; i < td->ss.dur; i++) - td->ss.iops_data[i] = td->ss.bw_data[i] =0 ; + td->ss.bw_data =calloc (td->ss.dur,sizeof (uint64_t )); + td->ss.iops_data =calloc (td->ss.dur,sizeof (uint64_t )); td->ss.state |= __FIO_SS_DATA; }
t/log.c +2 -2
@@ -2,7 +2,7 @@#include <stdarg.h> #include "../minmax.h" -int log_err (const char *format, ...) +size_t log_err (const char *format, ...) {char buffer[1024 ];va_list args;
@@ -16,7 +16,7 @@ int log_err(const char *format, ...)return fwrite (buffer, len,1 , stderr); } -int log_info (const char *format, ...) +size_t log_info (const char *format, ...) {char buffer[1024 ];va_list args;