From: Jens Axboe <axboe@kernel.dk>
To: fio@vger.kernel.org
Subject: Recent changes (master)
Date: Wed, 24 May 2017 06:00:02 -0600 (MDT) [thread overview]
Message-ID: <20170524120002.5B7C22C246B@kernel.dk> (raw)
The following changes since commit af13d1e88158d3e37940648be139d7a46fe00431:
Merge branch 'bugfix' of https://github.com/YukiKita/fio (2017-05-22 10:23:25 -0600)
are available in the git repository at:
git://git.kernel.dk/fio.git master
for you to fetch changes up to c78e8496d438982157657711fbff8bedb621c1c9:
log: ensure we don't truncate the final '\0' in the log (2017-05-23 21:51:59 -0600)
----------------------------------------------------------------
Jens Axboe (4):
Revert "Fixed json_print_value so that ending double quote of JSON string value will not disappear"
log: make log_buf() return how much it wrote
log: make the logging functions handle > 1024 bytes correctly
log: ensure we don't truncate the final '\0' in the log
Tomohiro Kusumi (7):
configure: Use single square brackets (POSIX)
configure: Add print_config() for "<config>... <yes|no>" outputs
Move {is,load}_blktrace() to a new header blktrace.h
Drop struct thread_data dependency from os headers
Drop circular dependency in log.c and lib/output_buffer.c
Include sg headers in os/os-linux.h
Move Linux/ppc64 specific cpu_online() to os/os-linux.h
blktrace.c | 1 +
blktrace.h | 23 ++++++++
configure | 159 +++++++++++++++++++++++++++-------------------------
fio.h | 8 ---
init.c | 10 +++-
iolog.c | 1 +
json.c | 10 +---
lib/output_buffer.c | 8 +--
lib/output_buffer.h | 2 +-
log.c | 117 ++++++++++++++++++++++++++++----------
log.h | 16 +++---
os/os-linux.h | 10 ++++
os/os-windows.h | 4 +-
os/os.h | 34 +----------
stat.c | 6 +-
15 files changed, 231 insertions(+), 178 deletions(-)
create mode 100644 blktrace.h
---
Diff of recent changes:
diff --git a/blktrace.c b/blktrace.c
index a3474cb..65b600f 100644
--- a/blktrace.c
+++ b/blktrace.c
@@ -10,6 +10,7 @@
#include "flist.h"
#include "fio.h"
+#include "blktrace.h"
#include "blktrace_api.h"
#include "oslib/linux-dev-lookup.h"
diff --git a/blktrace.h b/blktrace.h
new file mode 100644
index 0000000..8656a95
--- /dev/null
+++ b/blktrace.h
@@ -0,0 +1,23 @@
+#ifndef FIO_BLKTRACE_H
+#define FIO_BLKTRACE_H
+
+#ifdef FIO_HAVE_BLKTRACE
+
+int is_blktrace(const char *, int *);
+int load_blktrace(struct thread_data *, const char *, int);
+
+#else
+
+static inline int is_blktrace(const char *fname, int *need_swap)
+{
+ return 0;
+}
+
+static inline int load_blktrace(struct thread_data *td, const char *fname,
+ int need_swap)
+{
+ return 1;
+}
+
+#endif
+#endif
diff --git a/configure b/configure
index 0327578..2c6bfc8 100755
--- a/configure
+++ b/configure
@@ -37,6 +37,11 @@ fatal() {
exit 1
}
+# Print result for each configuration test
+print_config() {
+ printf "%-30s%s\n" "$1" "$2"
+}
+
# Default CFLAGS
CFLAGS="-D_GNU_SOURCE -include config-host.h"
BUILD_CFLAGS=""
@@ -475,11 +480,11 @@ EOF
fi
-echo "Operating system $targetos"
-echo "CPU $cpu"
-echo "Big endian $bigendian"
-echo "Compiler $cc"
-echo "Cross compile $cross_compile"
+print_config "Operating system" "$targetos"
+print_config "CPU" "$cpu"
+print_config "Big endian" "$bigendian"
+print_config "Compiler" "$cc"
+print_config "Cross compile" "$cross_compile"
echo
##########################################
@@ -490,7 +495,7 @@ if test "$build_static" = "yes" ; then
else
build_static="no"
fi
-echo "Static build $build_static"
+print_config "Static build" "$build_static"
##########################################
# check for wordsize
@@ -511,7 +516,7 @@ elif compile_prog "-DWORDSIZE=64" "" "wordsize"; then
else
fatal "Unknown wordsize"
fi
-echo "Wordsize $wordsize"
+print_config "Wordsize" "$wordsize"
##########################################
# zlib probe
@@ -532,7 +537,7 @@ if compile_prog "" "-lz" "zlib" ; then
zlib=yes
LIBS="-lz $LIBS"
fi
-echo "zlib $zlib"
+print_config "zlib" "$zlib"
##########################################
# linux-aio probe
@@ -559,7 +564,7 @@ EOF
libaio=no
fi
fi
-echo "Linux AIO support $libaio"
+print_config "Linux AIO support" "$libaio"
##########################################
# posix aio probe
@@ -585,8 +590,8 @@ elif compile_prog "" "-lrt" "posixaio"; then
posix_aio_lrt="yes"
LIBS="-lrt $LIBS"
fi
-echo "POSIX AIO support $posix_aio"
-echo "POSIX AIO support needs -lrt $posix_aio_lrt"
+print_config "POSIX AIO support" "$posix_aio"
+print_config "POSIX AIO support needs -lrt" "$posix_aio_lrt"
##########################################
# posix aio fsync probe
@@ -608,7 +613,7 @@ EOF
posix_aio_fsync=yes
fi
fi
-echo "POSIX AIO fsync $posix_aio_fsync"
+print_config "POSIX AIO fsync" "$posix_aio_fsync"
##########################################
# POSIX pshared attribute probe
@@ -638,7 +643,7 @@ EOF
if compile_prog "" "$LIBS" "posix_pshared" ; then
posix_pshared=yes
fi
-echo "POSIX pshared support $posix_pshared"
+print_config "POSIX pshared support" "$posix_pshared"
##########################################
# solaris aio probe
@@ -660,7 +665,7 @@ if compile_prog "" "-laio" "solarisaio" ; then
solaris_aio=yes
LIBS="-laio $LIBS"
fi
-echo "Solaris AIO support $solaris_aio"
+print_config "Solaris AIO support" "$solaris_aio"
##########################################
# __sync_fetch_and_add test
@@ -684,7 +689,7 @@ EOF
if compile_prog "" "" "__sync_fetch_and_add()" ; then
sfaa="yes"
fi
-echo "__sync_fetch_and_add $sfaa"
+print_config "__sync_fetch_and_add" "$sfaa"
##########################################
# libverbs probe
@@ -704,7 +709,7 @@ if test "$disable_rdma" != "yes" && compile_prog "" "-libverbs" "libverbs" ; the
libverbs="yes"
LIBS="-libverbs $LIBS"
fi
-echo "libverbs $libverbs"
+print_config "libverbs" "$libverbs"
##########################################
# rdmacm probe
@@ -724,7 +729,7 @@ if test "$disable_rdma" != "yes" && compile_prog "" "-lrdmacm" "rdma"; then
rdmacm="yes"
LIBS="-lrdmacm $LIBS"
fi
-echo "rdmacm $rdmacm"
+print_config "rdmacm" "$rdmacm"
##########################################
# Linux fallocate probe
@@ -744,7 +749,7 @@ EOF
if compile_prog "" "" "linux_fallocate"; then
linux_fallocate="yes"
fi
-echo "Linux fallocate $linux_fallocate"
+print_config "Linux fallocate" "$linux_fallocate"
##########################################
# POSIX fadvise probe
@@ -763,7 +768,7 @@ EOF
if compile_prog "" "" "posix_fadvise"; then
posix_fadvise="yes"
fi
-echo "POSIX fadvise $posix_fadvise"
+print_config "POSIX fadvise" "$posix_fadvise"
##########################################
# POSIX fallocate probe
@@ -782,7 +787,7 @@ EOF
if compile_prog "" "" "posix_fallocate"; then
posix_fallocate="yes"
fi
-echo "POSIX fallocate $posix_fallocate"
+print_config "POSIX fallocate" "$posix_fallocate"
##########################################
# sched_set/getaffinity 2 or 3 argument test
@@ -815,8 +820,8 @@ EOF
linux_2arg_affinity="yes"
fi
fi
-echo "sched_setaffinity(3 arg) $linux_3arg_affinity"
-echo "sched_setaffinity(2 arg) $linux_2arg_affinity"
+print_config "sched_setaffinity(3 arg)" "$linux_3arg_affinity"
+print_config "sched_setaffinity(2 arg)" "$linux_2arg_affinity"
##########################################
# clock_gettime probe
@@ -837,7 +842,7 @@ elif compile_prog "" "-lrt" "clock_gettime"; then
clock_gettime="yes"
LIBS="-lrt $LIBS"
fi
-echo "clock_gettime $clock_gettime"
+print_config "clock_gettime" "$clock_gettime"
##########################################
# CLOCK_MONOTONIC probe
@@ -857,7 +862,7 @@ EOF
clock_monotonic="yes"
fi
fi
-echo "CLOCK_MONOTONIC $clock_monotonic"
+print_config "CLOCK_MONOTONIC" "$clock_monotonic"
##########################################
# CLOCK_MONOTONIC_RAW probe
@@ -877,7 +882,7 @@ EOF
clock_monotonic_raw="yes"
fi
fi
-echo "CLOCK_MONOTONIC_RAW $clock_monotonic_raw"
+print_config "CLOCK_MONOTONIC_RAW" "$clock_monotonic_raw"
##########################################
# CLOCK_MONOTONIC_PRECISE probe
@@ -897,7 +902,7 @@ EOF
clock_monotonic_precise="yes"
fi
fi
-echo "CLOCK_MONOTONIC_PRECISE $clock_monotonic_precise"
+print_config "CLOCK_MONOTONIC_PRECISE" "$clock_monotonic_precise"
##########################################
# clockid_t probe
@@ -917,7 +922,7 @@ EOF
if compile_prog "" "$LIBS" "clockid_t"; then
clockid_t="yes"
fi
-echo "clockid_t $clockid_t"
+print_config "clockid_t" "$clockid_t"
##########################################
# gettimeofday() probe
@@ -936,7 +941,7 @@ EOF
if compile_prog "" "" "gettimeofday"; then
gettimeofday="yes"
fi
-echo "gettimeofday $gettimeofday"
+print_config "gettimeofday" "$gettimeofday"
##########################################
# fdatasync() probe
@@ -954,7 +959,7 @@ EOF
if compile_prog "" "" "fdatasync"; then
fdatasync="yes"
fi
-echo "fdatasync $fdatasync"
+print_config "fdatasync" "$fdatasync"
##########################################
# sync_file_range() probe
@@ -976,7 +981,7 @@ EOF
if compile_prog "" "" "sync_file_range"; then
sync_file_range="yes"
fi
-echo "sync_file_range $sync_file_range"
+print_config "sync_file_range" "$sync_file_range"
##########################################
# ext4 move extent probe
@@ -1000,7 +1005,7 @@ elif test $targetos = "Linux" ; then
# work. Takes a while to bubble back.
ext4_me="yes"
fi
-echo "EXT4 move extent $ext4_me"
+print_config "EXT4 move extent" "$ext4_me"
##########################################
# splice probe
@@ -1018,7 +1023,7 @@ EOF
if compile_prog "" "" "linux splice"; then
linux_splice="yes"
fi
-echo "Linux splice(2) $linux_splice"
+print_config "Linux splice(2)" "$linux_splice"
##########################################
# GUASI probe
@@ -1037,7 +1042,7 @@ EOF
if compile_prog "" "" "guasi"; then
guasi="yes"
fi
-echo "GUASI $guasi"
+print_config "GUASI" "$guasi"
##########################################
# fusion-aw probe
@@ -1059,7 +1064,7 @@ if compile_prog "" "-L/usr/lib/fio -L/usr/lib/nvm -lnvm-primitives -ldl -lpthrea
LIBS="-L/usr/lib/fio -L/usr/lib/nvm -lnvm-primitives -ldl -lpthread $LIBS"
fusion_aw="yes"
fi
-echo "Fusion-io atomic engine $fusion_aw"
+print_config "Fusion-io atomic engine" "$fusion_aw"
##########################################
# libnuma probe
@@ -1077,7 +1082,7 @@ if test "$disable_numa" != "yes" && compile_prog "" "-lnuma" "libnuma"; then
libnuma="yes"
LIBS="-lnuma $LIBS"
fi
-echo "libnuma $libnuma"
+print_config "libnuma" "$libnuma"
##########################################
# libnuma 2.x version API, initialize with "no" only if $libnuma is set to "yes"
@@ -1094,7 +1099,7 @@ EOF
if compile_prog "" "" "libnuma api"; then
libnuma_v2="yes"
fi
-echo "libnuma v2 $libnuma_v2"
+print_config "libnuma v2" "$libnuma_v2"
fi
##########################################
@@ -1114,7 +1119,7 @@ EOF
if compile_prog "" "" "strsep"; then
strsep="yes"
fi
-echo "strsep $strsep"
+print_config "strsep" "$strsep"
##########################################
# strcasestr() probe
@@ -1131,7 +1136,7 @@ EOF
if compile_prog "" "" "strcasestr"; then
strcasestr="yes"
fi
-echo "strcasestr $strcasestr"
+print_config "strcasestr" "$strcasestr"
##########################################
# strlcat() probe
@@ -1152,7 +1157,7 @@ EOF
if compile_prog "" "" "strlcat"; then
strlcat="yes"
fi
-echo "strlcat $strlcat"
+print_config "strlcat" "$strlcat"
##########################################
# getopt_long_only() probe
@@ -1172,7 +1177,7 @@ EOF
if compile_prog "" "" "getopt_long_only"; then
getopt_long_only="yes"
fi
-echo "getopt_long_only() $getopt_long_only"
+print_config "getopt_long_only()" "$getopt_long_only"
##########################################
# inet_aton() probe
@@ -1192,7 +1197,7 @@ EOF
if compile_prog "" "" "inet_aton"; then
inet_aton="yes"
fi
-echo "inet_aton $inet_aton"
+print_config "inet_aton" "$inet_aton"
##########################################
# socklen_t probe
@@ -1210,7 +1215,7 @@ EOF
if compile_prog "" "" "socklen_t"; then
socklen_t="yes"
fi
-echo "socklen_t $socklen_t"
+print_config "socklen_t" "$socklen_t"
##########################################
# Whether or not __thread is supported for TLS
@@ -1228,7 +1233,7 @@ EOF
if compile_prog "" "" "__thread"; then
tls_thread="yes"
fi
-echo "__thread $tls_thread"
+print_config "__thread" "$tls_thread"
##########################################
# Check if we have required gtk/glib support for gfio
@@ -1278,7 +1283,7 @@ LDFLAGS=$ORG_LDFLAGS
fi
if test "$gfio_check" = "yes" ; then
- echo "gtk 2.18 or higher $gfio"
+ print_config "gtk 2.18 or higher" "$gfio"
fi
##########################################
@@ -1299,7 +1304,7 @@ EOF
if compile_prog "" "" "RUSAGE_THREAD"; then
rusage_thread="yes"
fi
-echo "RUSAGE_THREAD $rusage_thread"
+print_config "RUSAGE_THREAD" "$rusage_thread"
##########################################
# Check whether we have SCHED_IDLE
@@ -1317,7 +1322,7 @@ EOF
if compile_prog "" "" "SCHED_IDLE"; then
sched_idle="yes"
fi
-echo "SCHED_IDLE $sched_idle"
+print_config "SCHED_IDLE" "$sched_idle"
##########################################
# Check whether we have TCP_NODELAY
@@ -1337,7 +1342,7 @@ EOF
if compile_prog "" "" "TCP_NODELAY"; then
tcp_nodelay="yes"
fi
-echo "TCP_NODELAY $tcp_nodelay"
+print_config "TCP_NODELAY" "$tcp_nodelay"
##########################################
# Check whether we have SO_SNDBUF
@@ -1358,7 +1363,7 @@ EOF
if compile_prog "" "" "SO_SNDBUF"; then
window_size="yes"
fi
-echo "Net engine window_size $window_size"
+print_config "Net engine window_size" "$window_size"
##########################################
# Check whether we have TCP_MAXSEG
@@ -1380,7 +1385,7 @@ EOF
if compile_prog "" "" "TCP_MAXSEG"; then
mss="yes"
fi
-echo "TCP_MAXSEG $mss"
+print_config "TCP_MAXSEG" "$mss"
##########################################
# Check whether we have RLIMIT_MEMLOCK
@@ -1399,7 +1404,7 @@ EOF
if compile_prog "" "" "RLIMIT_MEMLOCK"; then
rlimit_memlock="yes"
fi
-echo "RLIMIT_MEMLOCK $rlimit_memlock"
+print_config "RLIMIT_MEMLOCK" "$rlimit_memlock"
##########################################
# Check whether we have pwritev/preadv
@@ -1417,7 +1422,7 @@ EOF
if compile_prog "" "" "pwritev"; then
pwritev="yes"
fi
-echo "pwritev/preadv $pwritev"
+print_config "pwritev/preadv" "$pwritev"
##########################################
# Check whether we have pwritev2/preadv2
@@ -1435,7 +1440,7 @@ EOF
if compile_prog "" "" "pwritev2"; then
pwritev2="yes"
fi
-echo "pwritev2/preadv2 $pwritev2"
+print_config "pwritev2/preadv2" "$pwritev2"
##########################################
# Check whether we have the required functions for ipv6
@@ -1464,7 +1469,7 @@ EOF
if compile_prog "" "" "ipv6"; then
ipv6="yes"
fi
-echo "IPv6 helpers $ipv6"
+print_config "IPv6 helpers" "$ipv6"
##########################################
# check for rbd
@@ -1491,7 +1496,7 @@ if test "$disable_rbd" != "yes" && compile_prog "" "-lrbd -lrados" "rbd"; then
LIBS="-lrbd -lrados $LIBS"
rbd="yes"
fi
-echo "Rados Block Device engine $rbd"
+print_config "Rados Block Device engine" "$rbd"
##########################################
# check for rbd_poll
@@ -1518,7 +1523,7 @@ EOF
if compile_prog "" "-lrbd -lrados" "rbd"; then
rbd_poll="yes"
fi
-echo "rbd_poll $rbd_poll"
+print_config "rbd_poll" "$rbd_poll"
fi
##########################################
@@ -1540,7 +1545,7 @@ EOF
if compile_prog "" "-lrbd -lrados" "rbd"; then
rbd_inval="yes"
fi
-echo "rbd_invalidate_cache $rbd_inval"
+print_config "rbd_invalidate_cache" "$rbd_inval"
fi
##########################################
@@ -1571,7 +1576,7 @@ if test "$disable_rbd" != "yes" && test "$disable_rbd_blkin" != "yes" \
LIBS="-lblkin $LIBS"
rbd_blkin="yes"
fi
-echo "rbd blkin tracing $rbd_blkin"
+print_config "rbd blkin tracing" "$rbd_blkin"
##########################################
# Check whether we have setvbuf
@@ -1591,7 +1596,7 @@ EOF
if compile_prog "" "" "setvbuf"; then
setvbuf="yes"
fi
-echo "setvbuf $setvbuf"
+print_config "setvbuf" "$setvbuf"
##########################################
# check for gfapi
@@ -1612,7 +1617,7 @@ if test "$disable_gfapi" != "yes" && compile_prog "" "-lgfapi -lglusterfs" "gfa
LIBS="-lgfapi -lglusterfs $LIBS"
gfapi="yes"
fi
- echo "Gluster API engine $gfapi"
+print_config "Gluster API engine" "$gfapi"
##########################################
# check for gfapi fadvise support, initialize with "no" only if $gfapi is set to "yes"
@@ -1632,7 +1637,7 @@ EOF
if compile_prog "" "-lgfapi -lglusterfs" "gfapi"; then
gf_fadvise="yes"
fi
-echo "Gluster API use fadvise $gf_fadvise"
+print_config "Gluster API use fadvise" "$gf_fadvise"
fi
##########################################
@@ -1652,7 +1657,7 @@ EOF
if compile_prog "" "-lgfapi -lglusterfs" "gf trim"; then
gf_trim="yes"
fi
-echo "Gluster API trim support $gf_trim"
+print_config "Gluster API trim support" "$gf_trim"
fi
##########################################
@@ -1682,11 +1687,11 @@ int main(int argc, char **argv)
EOF
if compile_prog "" "" "s390_z196_facilities"; then
$TMPE
- if [[ $? -eq 0 ]]; then
+ if [ $? -eq 0 ]; then
s390_z196_facilities="yes"
fi
fi
-echo "s390_z196_facilities $s390_z196_facilities"
+print_config "s390_z196_facilities" "$s390_z196_facilities"
##########################################
# Check if we have required environment variables configured for libhdfs
@@ -1712,7 +1717,7 @@ if test "$libhdfs" = "yes" ; then
FIO_HDFS_CPU="amd64"
fi
fi
-echo "HDFS engine $libhdfs"
+print_config "HDFS engine" "$libhdfs"
##########################################
# Check whether we have MTD
@@ -1735,7 +1740,7 @@ EOF
if compile_prog "" "" "mtd"; then
mtd="yes"
fi
-echo "MTD $mtd"
+print_config "MTD" "$mtd"
##########################################
# Check whether we have libpmem
@@ -1755,7 +1760,7 @@ if compile_prog "" "-lpmem" "libpmem"; then
libpmem="yes"
LIBS="-lpmem $LIBS"
fi
-echo "libpmem $libpmem"
+print_config "libpmem" "$libpmem"
##########################################
# Check whether we have libpmemblk
@@ -1778,7 +1783,7 @@ EOF
LIBS="-lpmemblk $LIBS"
fi
fi
-echo "libpmemblk $libpmemblk"
+print_config "libpmemblk" "$libpmemblk"
# Choose the ioengines
if test "$libpmem" = "yes" && test "$disable_pmem" = "no"; then
@@ -1790,11 +1795,11 @@ fi
##########################################
# Report whether pmemblk engine is enabled
-echo "NVML pmemblk engine $pmemblk"
+print_config "NVML pmemblk engine" "$pmemblk"
##########################################
# Report whether dev-dax engine is enabled
-echo "NVML dev-dax engine $devdax"
+print_config "NVML dev-dax engine" "$devdax"
##########################################
# Check if we have lex/yacc available
@@ -1855,7 +1860,7 @@ fi
fi
fi
-echo "lex/yacc for arithmetic $arith"
+print_config "lex/yacc for arithmetic" "$arith"
##########################################
# Check whether we have setmntent/getmntent
@@ -1876,7 +1881,7 @@ EOF
if compile_prog "" "" "getmntent"; then
getmntent="yes"
fi
-echo "getmntent $getmntent"
+print_config "getmntent" "$getmntent"
##########################################
# Check whether we have getmntinfo
@@ -1901,7 +1906,7 @@ EOF
if compile_prog "-Werror" "" "getmntinfo"; then
getmntinfo="yes"
fi
-echo "getmntinfo $getmntinfo"
+print_config "getmntinfo" "$getmntinfo"
# getmntinfo(3) for NetBSD.
if test "$getmntinfo_statvfs" != "yes" ; then
@@ -1919,7 +1924,7 @@ EOF
# Skip the test if the one with statfs arg is detected.
if test "$getmntinfo" != "yes" && compile_prog "-Werror" "" "getmntinfo_statvfs"; then
getmntinfo_statvfs="yes"
- echo "getmntinfo_statvfs $getmntinfo_statvfs"
+ print_config "getmntinfo_statvfs" "$getmntinfo_statvfs"
fi
##########################################
@@ -1945,7 +1950,7 @@ EOF
if compile_prog "" "" "static_assert"; then
static_assert="yes"
fi
-echo "Static Assert $static_assert"
+print_config "Static Assert" "$static_assert"
##########################################
# Check whether we have bool / stdbool.h
@@ -1963,7 +1968,7 @@ EOF
if compile_prog "" "" "bool"; then
have_bool="yes"
fi
-echo "bool $have_bool"
+print_config "bool" "$have_bool"
##########################################
# check march=armv8-a+crc+crypto
@@ -1986,7 +1991,7 @@ EOF
CFLAGS="$CFLAGS -march=armv8-a+crc+crypto -DARCH_HAVE_CRC_CRYPTO"
fi
fi
-echo "march_armv8_a_crc_crypto $march_armv8_a_crc_crypto"
+print_config "march_armv8_a_crc_crypto" "$march_armv8_a_crc_crypto"
##########################################
# cuda probe
@@ -2004,7 +2009,7 @@ if test "$enable_cuda" = "yes" && compile_prog "" "-lcuda" "cuda"; then
cuda="yes"
LIBS="-lcuda $LIBS"
fi
-echo "cuda $cuda"
+print_config "cuda" "$cuda"
#############################################################################
diff --git a/fio.h b/fio.h
index ed631bc..963cf03 100644
--- a/fio.h
+++ b/fio.h
@@ -640,14 +640,6 @@ extern void free_threads_shm(void);
*/
extern void reset_all_stats(struct thread_data *);
-/*
- * blktrace support
- */
-#ifdef FIO_HAVE_BLKTRACE
-extern int is_blktrace(const char *, int *);
-extern int load_blktrace(struct thread_data *, const char *, int);
-#endif
-
extern int io_queue_event(struct thread_data *td, struct io_u *io_u, int *ret,
enum fio_ddir ddir, uint64_t *bytes_issued, int from_verify,
struct timeval *comp_time);
diff --git a/init.c b/init.c
index 52a5f03..d224bd6 100644
--- a/init.c
+++ b/init.c
@@ -1080,8 +1080,12 @@ static int setup_random_seeds(struct thread_data *td)
unsigned long seed;
unsigned int i;
- if (!td->o.rand_repeatable && !fio_option_is_set(&td->o, rand_seed))
- return init_random_state(td, td->rand_seeds, sizeof(td->rand_seeds));
+ if (!td->o.rand_repeatable && !fio_option_is_set(&td->o, rand_seed)) {
+ int ret = init_random_seeds(td->rand_seeds, sizeof(td->rand_seeds));
+ if (!ret)
+ td_fill_rand_seeds(td);
+ return ret;
+ }
seed = td->o.rand_seed;
for (i = 0; i < 4; i++)
@@ -1376,7 +1380,7 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num,
prev_group_jobs++;
if (setup_random_seeds(td)) {
- td_verror(td, errno, "init_random_state");
+ td_verror(td, errno, "setup_random_seeds");
goto err;
}
diff --git a/iolog.c b/iolog.c
index 31d674c..01b82e8 100644
--- a/iolog.c
+++ b/iolog.c
@@ -19,6 +19,7 @@
#include "trim.h"
#include "filelock.h"
#include "smalloc.h"
+#include "blktrace.h"
static int iolog_flush(struct io_log *log);
diff --git a/json.c b/json.c
index 2160d29..e0227ec 100644
--- a/json.c
+++ b/json.c
@@ -340,13 +340,9 @@ static void json_print_array(struct json_array *array, struct buf_output *out)
static void json_print_value(struct json_value *value, struct buf_output *out)
{
switch (value->type) {
- case JSON_TYPE_STRING: {
- const char delimiter = '"';
- buf_output_add(out, &delimiter, sizeof(delimiter));
- buf_output_add(out, value->string, strlen(value->string));
- buf_output_add(out, &delimiter, sizeof(delimiter));
- break;
- }
+ case JSON_TYPE_STRING:
+ log_buf(out, "\"%s\"", value->string);
+ break;
case JSON_TYPE_INTEGER:
log_buf(out, "%lld", value->integer_number);
break;
diff --git a/lib/output_buffer.c b/lib/output_buffer.c
index c1fdfc9..313536d 100644
--- a/lib/output_buffer.c
+++ b/lib/output_buffer.c
@@ -3,7 +3,6 @@
#include <stdlib.h>
#include "output_buffer.h"
-#include "../log.h"
#include "../minmax.h"
#define BUF_INC 1024
@@ -41,15 +40,10 @@ size_t buf_output_add(struct buf_output *out, const char *buf, size_t len)
return len;
}
-size_t buf_output_flush(struct buf_output *out)
+void buf_output_clear(struct buf_output *out)
{
- size_t ret = 0;
-
if (out->buflen) {
- ret = log_info_buf(out->buf, out->buflen);
memset(out->buf, 0, out->max_buflen);
out->buflen = 0;
}
-
- return ret;
}
diff --git a/lib/output_buffer.h b/lib/output_buffer.h
index 396002f..15ee005 100644
--- a/lib/output_buffer.h
+++ b/lib/output_buffer.h
@@ -12,6 +12,6 @@ struct buf_output {
void buf_output_init(struct buf_output *out);
void buf_output_free(struct buf_output *out);
size_t buf_output_add(struct buf_output *out, const char *buf, size_t len);
-size_t buf_output_flush(struct buf_output *out);
+void buf_output_clear(struct buf_output *out);
#endif
diff --git a/log.c b/log.c
index 4eb4af5..c7856eb 100644
--- a/log.c
+++ b/log.c
@@ -6,8 +6,16 @@
#include "fio.h"
+#define LOG_START_SZ 512
+
size_t log_info_buf(const char *buf, size_t len)
{
+ /*
+ * buf could be NULL (not just "").
+ */
+ if (!buf)
+ return 0;
+
if (is_backend) {
size_t ret = fio_server_text_output(FIO_LOG_INFO, buf, len);
if (ret != -1)
@@ -23,38 +31,76 @@ size_t log_info_buf(const char *buf, size_t len)
size_t log_valist(const char *str, va_list args)
{
- char buffer[1024];
- size_t len;
+ size_t len, cur = LOG_START_SZ;
+ char *buffer;
+
+ do {
+ buffer = calloc(1, cur);
+
+ len = vsnprintf(buffer, cur, str, args);
+ if (len < cur)
+ break;
+
+ cur = len + 1;
+ free(buffer);
+ } while (1);
- len = vsnprintf(buffer, sizeof(buffer), str, args);
+ cur = log_info_buf(buffer, len);
+ free(buffer);
- return log_info_buf(buffer, min(len, sizeof(buffer) - 1));
+ return cur;
}
size_t log_info(const char *format, ...)
{
- char buffer[1024];
+ size_t len, cur = LOG_START_SZ;
+ char *buffer;
va_list args;
- size_t len;
- va_start(args, format);
- len = vsnprintf(buffer, sizeof(buffer), format, args);
- va_end(args);
+ do {
+ buffer = calloc(1, cur);
- return log_info_buf(buffer, min(len, sizeof(buffer) - 1));
+ va_start(args, format);
+ len = vsnprintf(buffer, cur, format, args);
+ va_end(args);
+
+ if (len < cur)
+ break;
+
+ cur = len + 1;
+ free(buffer);
+ } while (1);
+
+ cur = log_info_buf(buffer, len);
+ free(buffer);
+
+ return cur;
}
size_t __log_buf(struct buf_output *buf, const char *format, ...)
{
- char buffer[1024];
+ size_t len, cur = LOG_START_SZ;
+ char *buffer;
va_list args;
- size_t len;
- va_start(args, format);
- len = vsnprintf(buffer, sizeof(buffer), format, args);
- va_end(args);
+ do {
+ buffer = calloc(1, cur);
+
+ va_start(args, format);
+ len = vsnprintf(buffer, cur, format, args);
+ va_end(args);
- return buf_output_add(buf, buffer, min(len, sizeof(buffer) - 1));
+ if (len < cur)
+ break;
+
+ cur = len + 1;
+ free(buffer);
+ } while (1);
+
+ cur = buf_output_add(buf, buffer, len);
+ free(buffer);
+
+ return cur;
}
int log_info_flush(void)
@@ -67,33 +113,44 @@ int log_info_flush(void)
size_t log_err(const char *format, ...)
{
- char buffer[1024];
+ size_t ret, len, cur = LOG_START_SZ;
+ char *buffer;
va_list args;
- size_t len;
- va_start(args, format);
- len = vsnprintf(buffer, sizeof(buffer), format, args);
- va_end(args);
- len = min(len, sizeof(buffer) - 1);
+ do {
+ buffer = calloc(1, cur);
+
+ va_start(args, format);
+ len = vsnprintf(buffer, cur, format, args);
+ va_end(args);
+
+ if (len < cur)
+ break;
+
+ cur = len + 1;
+ free(buffer);
+ } while (1);
+
if (is_backend) {
- size_t ret = fio_server_text_output(FIO_LOG_ERR, buffer, len);
+ ret = fio_server_text_output(FIO_LOG_ERR, buffer, len);
if (ret != -1)
- return ret;
+ goto done;
}
if (log_syslog) {
syslog(LOG_INFO, "%s", buffer);
- return len;
+ ret = len;
} else {
- if (f_err != stderr) {
- int fio_unused ret;
-
+ if (f_err != stderr)
ret = fwrite(buffer, len, 1, stderr);
- }
- return fwrite(buffer, len, 1, f_err);
+ ret = fwrite(buffer, len, 1, f_err);
}
+
+done:
+ free(buffer);
+ return ret;
}
const char *log_get_level(int level)
diff --git a/log.h b/log.h
index a39dea6..66546c4 100644
--- a/log.h
+++ b/log.h
@@ -16,13 +16,15 @@ extern size_t log_valist(const char *str, va_list);
extern size_t log_info_buf(const char *buf, size_t len);
extern int log_info_flush(void);
-#define log_buf(buf, format, args...) \
-do { \
- if ((buf) != NULL) \
- __log_buf(buf, format, ##args); \
- else \
- log_info(format, ##args); \
-} while (0)
+#define log_buf(buf, format, args...) \
+({ \
+ size_t __ret; \
+ if ((buf) != NULL) \
+ __ret = __log_buf(buf, format, ##args); \
+ else \
+ __ret = log_info(format, ##args); \
+ __ret; \
+})
enum {
FIO_LOG_DEBUG = 1,
diff --git a/os/os-linux.h b/os/os-linux.h
index ba53590..008ce2d 100644
--- a/os/os-linux.h
+++ b/os/os-linux.h
@@ -16,6 +16,8 @@
#include <linux/unistd.h>
#include <linux/raw.h>
#include <linux/major.h>
+#include <linux/fs.h>
+#include <scsi/sg.h>
#include "./os-linux-syscall.h"
#include "binject.h"
@@ -258,6 +260,14 @@ static inline int arch_cache_line_size(void)
return atoi(size);
}
+#ifdef __powerpc64__
+#define FIO_HAVE_CPU_ONLINE_SYSCONF
+static inline unsigned int cpus_online(void)
+{
+ return sysconf(_SC_NPROCESSORS_CONF);
+}
+#endif
+
static inline unsigned long long get_fs_free_size(const char *path)
{
unsigned long long ret;
diff --git a/os/os-windows.h b/os/os-windows.h
index 0c8c42d..36b421e 100644
--- a/os/os-windows.h
+++ b/os/os-windows.h
@@ -116,7 +116,6 @@ int nanosleep(const struct timespec *rqtp, struct timespec *rmtp);
ssize_t pread(int fildes, void *buf, size_t nbyte, off_t offset);
ssize_t pwrite(int fildes, const void *buf, size_t nbyte,
off_t offset);
-extern void td_fill_rand_seeds(struct thread_data *);
static inline int blockdev_size(struct fio_file *f, unsigned long long *bytes)
{
@@ -239,7 +238,7 @@ static inline int fio_cpuset_exit(os_cpu_mask_t *mask)
return 0;
}
-static inline int init_random_state(struct thread_data *td, unsigned long *rand_seeds, int size)
+static inline int init_random_seeds(unsigned long *rand_seeds, int size)
{
HCRYPTPROV hCryptProv;
@@ -258,7 +257,6 @@ static inline int init_random_state(struct thread_data *td, unsigned long *rand_
}
CryptReleaseContext(hCryptProv, 0);
- td_fill_rand_seeds(td);
return 0;
}
diff --git a/os/os.h b/os/os.h
index 5e3c813..1d400c8 100644
--- a/os/os.h
+++ b/os/os.h
@@ -60,11 +60,6 @@ typedef struct aiocb os_aiocb_t;
#endif
#endif
-#ifdef FIO_HAVE_SGIO
-#include <linux/fs.h>
-#include <scsi/sg.h>
-#endif
-
#ifndef CONFIG_STRSEP
#include "../oslib/strsep.h"
#endif
@@ -253,19 +248,6 @@ static inline uint64_t fio_swap64(uint64_t val)
__cpu_to_le64(val); \
})
-#ifndef FIO_HAVE_BLKTRACE
-static inline int is_blktrace(const char *fname, int *need_swap)
-{
- return 0;
-}
-struct thread_data;
-static inline int load_blktrace(struct thread_data *td, const char *fname,
- int need_swap)
-{
- return 1;
-}
-#endif
-
#define FIO_DEF_CL_SIZE 128
static inline int os_cache_line_size(void)
@@ -316,12 +298,7 @@ static inline long os_random_long(os_random_state_t *rs)
#endif
#ifdef FIO_USE_GENERIC_INIT_RANDOM_STATE
-extern void td_fill_rand_seeds(struct thread_data *td);
-/*
- * Initialize the various random states we need (random io, block size ranges,
- * read/write mix, etc).
- */
-static inline int init_random_state(struct thread_data *td, unsigned long *rand_seeds, int size)
+static inline int init_random_seeds(unsigned long *rand_seeds, int size)
{
int fd;
@@ -336,7 +313,6 @@ static inline int init_random_state(struct thread_data *td, unsigned long *rand_
}
close(fd);
- td_fill_rand_seeds(td);
return 0;
}
#endif
@@ -348,14 +324,6 @@ static inline unsigned long long get_fs_free_size(const char *path)
}
#endif
-#ifdef __powerpc64__
-#define FIO_HAVE_CPU_ONLINE_SYSCONF
-static inline unsigned int cpus_online(void)
-{
- return sysconf(_SC_NPROCESSORS_CONF);
-}
-#endif
-
#ifndef FIO_HAVE_CPU_ONLINE_SYSCONF
static inline unsigned int cpus_online(void)
{
diff --git a/stat.c b/stat.c
index 5b48413..1f124a8 100644
--- a/stat.c
+++ b/stat.c
@@ -1825,8 +1825,10 @@ void __show_run_stats(void)
}
for (i = 0; i < FIO_OUTPUT_NR; i++) {
- buf_output_flush(&output[i]);
- buf_output_free(&output[i]);
+ struct buf_output *out = &output[i];
+ log_info_buf(out->buf, out->buflen);
+ buf_output_clear(out);
+ buf_output_free(out);
}
log_info_flush();
next reply other threads:[~2017-05-24 12:00 UTC|newest]
Thread overview: 1313+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-24 12:00 Jens Axboe [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-05-01 12:00 Recent changes (master) Jens Axboe
2024-04-26 12:00 Jens Axboe
2024-04-25 12:00 Jens Axboe
2024-04-20 12:00 Jens Axboe
2024-04-19 12:00 Jens Axboe
2024-04-18 12:00 Jens Axboe
2024-04-17 12:00 Jens Axboe
2024-04-16 12:00 Jens Axboe
2024-04-03 12:00 Jens Axboe
2024-03-27 12:00 Jens Axboe
2024-03-26 12:00 Jens Axboe
2024-03-23 12:00 Jens Axboe
2024-03-22 12:00 Jens Axboe
2024-03-21 12:00 Jens Axboe
2024-03-19 12:00 Jens Axboe
2024-03-08 13:00 Jens Axboe
2024-03-06 13:00 Jens Axboe
2024-03-05 13:00 Jens Axboe
2024-02-28 13:00 Jens Axboe
2024-02-23 13:00 Jens Axboe
2024-02-17 13:00 Jens Axboe
2024-02-16 13:00 Jens Axboe
2024-02-15 13:00 Jens Axboe
2024-02-14 13:00 Jens Axboe
2024-02-13 13:00 Jens Axboe
2024-02-09 13:00 Jens Axboe
2024-02-08 13:00 Jens Axboe
2024-01-28 13:00 Jens Axboe
2024-01-26 13:00 Jens Axboe
2024-01-25 13:00 Jens Axboe
2024-01-24 13:00 Jens Axboe
2024-01-23 13:00 Jens Axboe
2024-01-19 13:00 Jens Axboe
2024-01-18 13:00 Jens Axboe
2024-01-17 13:00 Jens Axboe
2023-12-30 13:00 Jens Axboe
2023-12-20 13:00 Jens Axboe
2023-12-16 13:00 Jens Axboe
2023-12-15 13:00 Jens Axboe
2023-12-13 13:00 Jens Axboe
2023-12-12 13:00 Jens Axboe
2023-11-20 13:00 Jens Axboe
2023-11-08 13:00 Jens Axboe
2023-11-07 13:00 Jens Axboe
2023-11-04 12:00 Jens Axboe
2023-11-03 12:00 Jens Axboe
2023-11-01 12:00 Jens Axboe
2023-10-26 12:00 Jens Axboe
2023-10-24 12:00 Jens Axboe
2023-10-23 12:00 Jens Axboe
2023-10-20 12:00 Jens Axboe
2023-10-17 12:00 Jens Axboe
2023-10-14 12:00 Jens Axboe
2023-10-07 12:00 Jens Axboe
2023-10-03 12:00 Jens Axboe
2023-09-30 12:00 Jens Axboe
2023-09-29 12:00 Jens Axboe
2023-09-27 12:00 Jens Axboe
2023-09-20 12:00 Jens Axboe
2023-09-16 12:00 Jens Axboe
2023-09-12 12:00 Jens Axboe
2023-09-03 12:00 Jens Axboe
2023-08-24 12:00 Jens Axboe
2023-08-17 12:00 Jens Axboe
2023-08-15 12:00 Jens Axboe
2023-08-04 12:00 Jens Axboe
2023-08-03 12:00 Jens Axboe
2023-08-01 12:00 Jens Axboe
2023-07-29 12:00 Jens Axboe
2023-07-28 12:00 Jens Axboe
2023-07-22 12:00 Jens Axboe
2023-07-21 12:00 Jens Axboe
2023-07-16 12:00 Jens Axboe
2023-07-15 12:00 Jens Axboe
2023-07-14 12:00 Jens Axboe
2023-07-06 12:00 Jens Axboe
2023-07-04 12:00 Jens Axboe
2023-06-22 12:00 Jens Axboe
2023-06-17 12:00 Jens Axboe
2023-06-10 12:00 Jens Axboe
2023-06-09 12:00 Jens Axboe
2023-06-02 12:00 Jens Axboe
2023-05-31 12:00 Jens Axboe
2023-05-25 12:00 Jens Axboe
2023-05-24 12:00 Jens Axboe
2023-05-20 12:00 Jens Axboe
2023-05-19 12:00 Jens Axboe
2023-05-18 12:00 Jens Axboe
2023-05-17 12:00 Jens Axboe
2023-05-16 12:00 Jens Axboe
2023-05-12 12:00 Jens Axboe
2023-05-11 12:00 Jens Axboe
2023-04-28 12:00 Jens Axboe
2023-04-27 12:00 Jens Axboe
2023-04-21 12:00 Jens Axboe
2023-04-14 12:00 Jens Axboe
2023-04-11 12:00 Jens Axboe
2023-04-08 12:00 Jens Axboe
2023-04-05 12:00 Jens Axboe
2023-04-01 12:00 Jens Axboe
2023-03-28 12:00 Jens Axboe
2023-03-22 12:00 Jens Axboe
2023-03-21 12:00 Jens Axboe
2023-03-16 12:00 Jens Axboe
2023-03-15 12:00 Jens Axboe
2023-03-08 13:00 Jens Axboe
2023-03-04 13:00 Jens Axboe
2023-03-03 13:00 Jens Axboe
2023-03-01 13:00 Jens Axboe
2023-02-28 13:00 Jens Axboe
2023-02-24 13:00 Jens Axboe
2023-02-22 13:00 Jens Axboe
2023-02-21 13:00 Jens Axboe
2023-02-18 13:00 Jens Axboe
2023-02-16 13:00 Jens Axboe
2023-02-15 13:00 Jens Axboe
2023-02-11 13:00 Jens Axboe
2023-02-10 13:00 Jens Axboe
2023-02-08 13:00 Jens Axboe
2023-02-07 13:00 Jens Axboe
2023-02-04 13:00 Jens Axboe
2023-02-01 13:00 Jens Axboe
2023-01-31 13:00 Jens Axboe
2023-01-26 13:00 Jens Axboe
2023-01-25 13:00 Jens Axboe
2023-01-24 13:00 Jens Axboe
2023-01-21 13:00 Jens Axboe
2023-01-19 13:00 Jens Axboe
2023-01-12 13:00 Jens Axboe
2022-12-23 13:00 Jens Axboe
2022-12-17 13:00 Jens Axboe
2022-12-16 13:00 Jens Axboe
2022-12-13 13:00 Jens Axboe
2022-12-03 13:00 Jens Axboe
2022-12-02 13:00 Jens Axboe
2022-12-01 13:00 Jens Axboe
2022-11-30 13:00 Jens Axboe
2022-11-29 13:00 Jens Axboe
2022-11-24 13:00 Jens Axboe
2022-11-19 13:00 Jens Axboe
2022-11-15 13:00 Jens Axboe
2022-11-08 13:00 Jens Axboe
2022-11-07 13:00 Jens Axboe
2022-11-05 12:00 Jens Axboe
2022-11-03 12:00 Jens Axboe
2022-11-02 12:00 Jens Axboe
2022-10-25 12:00 Jens Axboe
2022-10-22 12:00 Jens Axboe
2022-10-20 12:00 Jens Axboe
2022-10-19 12:00 Jens Axboe
2022-10-17 12:00 Jens Axboe
2022-10-16 12:00 Jens Axboe
2022-10-15 12:00 Jens Axboe
2022-10-08 12:00 Jens Axboe
2022-10-06 12:00 Jens Axboe
2022-10-05 12:00 Jens Axboe
2022-10-04 12:00 Jens Axboe
2022-09-29 12:00 Jens Axboe
2022-09-23 12:00 Jens Axboe
2022-09-20 12:00 Jens Axboe
2022-09-16 12:00 Jens Axboe
2022-09-14 12:00 Jens Axboe
2022-09-13 12:00 Jens Axboe
2022-09-07 12:00 Jens Axboe
2022-09-04 12:00 Jens Axboe
2022-09-03 12:00 Jens Axboe
2022-09-02 12:00 Jens Axboe
2022-09-01 12:00 Jens Axboe
2022-08-31 12:00 Jens Axboe
2022-08-30 12:00 Jens Axboe
2022-08-27 12:00 Jens Axboe
2022-08-26 12:00 Jens Axboe
2022-08-25 12:00 Jens Axboe
2022-08-24 12:00 Jens Axboe
2022-08-17 12:00 Jens Axboe
2022-08-16 12:00 Jens Axboe
2022-08-12 12:00 Jens Axboe
2022-08-11 12:00 Jens Axboe
2022-08-10 12:00 Jens Axboe
2022-08-08 12:00 Jens Axboe
2022-08-04 12:00 Jens Axboe
2022-08-03 12:00 Jens Axboe
2022-08-01 12:00 Jens Axboe
2022-07-29 12:00 Jens Axboe
2022-07-28 12:00 Jens Axboe
2022-07-23 12:00 Jens Axboe
2022-07-22 12:00 Jens Axboe
2022-07-20 12:00 Jens Axboe
2022-07-12 12:00 Jens Axboe
2022-07-08 12:00 Jens Axboe
2022-07-07 12:00 Jens Axboe
2022-07-06 12:00 Jens Axboe
2022-07-02 12:00 Jens Axboe
2022-06-24 12:00 Jens Axboe
2022-06-23 12:00 Jens Axboe
2022-06-20 12:00 Jens Axboe
2022-06-16 12:00 Jens Axboe
2022-06-14 12:00 Jens Axboe
2022-06-02 12:00 Jens Axboe
2022-06-01 12:00 Jens Axboe
2022-05-30 12:00 Jens Axboe
2022-05-26 12:00 Jens Axboe
2022-05-13 12:00 Jens Axboe
2022-05-02 12:00 Jens Axboe
2022-04-30 12:00 Jens Axboe
2022-04-18 12:00 Jens Axboe
2022-04-11 12:00 Jens Axboe
2022-04-09 12:00 Jens Axboe
2022-04-07 12:00 Jens Axboe
2022-04-06 12:00 Jens Axboe
2022-03-31 12:00 Jens Axboe
2022-03-30 12:00 Jens Axboe
2022-03-29 12:00 Jens Axboe
2022-03-25 12:00 Jens Axboe
2022-03-21 12:00 Jens Axboe
2022-03-16 12:00 Jens Axboe
2022-03-12 13:00 Jens Axboe
2022-03-11 13:00 Jens Axboe
2022-03-10 13:00 Jens Axboe
2022-03-09 13:00 Jens Axboe
2022-03-08 13:00 Jens Axboe
2022-02-27 13:00 Jens Axboe
2022-02-25 13:00 Jens Axboe
2022-02-22 13:00 Jens Axboe
2022-02-21 13:00 Jens Axboe
2022-02-19 13:00 Jens Axboe
2022-02-18 13:00 Jens Axboe
2022-02-16 13:00 Jens Axboe
2022-02-12 13:00 Jens Axboe
2022-02-09 13:00 Jens Axboe
2022-02-05 13:00 Jens Axboe
2022-02-04 13:00 Jens Axboe
2022-01-29 13:00 Jens Axboe
2022-01-27 13:00 Jens Axboe
2022-01-22 13:00 Jens Axboe
2022-01-21 13:00 Jens Axboe
2022-01-19 13:00 Jens Axboe
2022-01-18 13:00 Jens Axboe
2022-01-11 13:00 Jens Axboe
2022-01-10 13:00 Jens Axboe
2021-12-24 13:00 Jens Axboe
2021-12-19 13:00 Jens Axboe
2021-12-16 13:00 Jens Axboe
2021-12-15 13:00 Jens Axboe
2021-12-11 13:00 Jens Axboe
2021-12-10 13:00 Jens Axboe
2021-12-07 13:00 Jens Axboe
2021-12-03 13:00 Jens Axboe
2021-11-26 13:00 Jens Axboe
2021-11-25 13:00 Jens Axboe
2021-11-22 13:00 Jens Axboe
2021-11-21 13:00 Jens Axboe
2021-11-20 13:00 Jens Axboe
2021-11-18 13:00 Jens Axboe
2021-11-13 13:00 Jens Axboe
2021-11-11 13:00 Jens Axboe
2021-10-26 12:00 Jens Axboe
2021-10-23 12:00 Jens Axboe
2021-10-25 15:37 ` Rebecca Cran
2021-10-25 15:41 ` Jens Axboe
2021-10-25 15:42 ` Rebecca Cran
2021-10-25 15:43 ` Jens Axboe
2021-10-20 12:00 Jens Axboe
2021-10-19 12:00 Jens Axboe
2021-10-18 12:00 Jens Axboe
2021-10-16 12:00 Jens Axboe
2021-10-15 12:00 Jens Axboe
2021-10-14 12:00 Jens Axboe
2021-10-13 12:00 Jens Axboe
2021-10-12 12:00 Jens Axboe
2021-10-10 12:00 Jens Axboe
2021-10-08 12:00 Jens Axboe
2021-10-06 12:00 Jens Axboe
2021-10-05 12:00 Jens Axboe
2021-10-02 12:00 Jens Axboe
2021-10-01 12:00 Jens Axboe
2021-09-30 12:00 Jens Axboe
2021-09-29 12:00 Jens Axboe
2021-09-27 12:00 Jens Axboe
2021-09-26 12:00 Jens Axboe
2021-09-25 12:00 Jens Axboe
2021-09-24 12:00 Jens Axboe
2021-09-21 12:00 Jens Axboe
2021-09-17 12:00 Jens Axboe
2021-09-16 12:00 Jens Axboe
2021-09-14 12:00 Jens Axboe
2021-09-09 12:00 Jens Axboe
2021-09-06 12:00 Jens Axboe
[not found] <20210904120002.6CvOT9T4szpIiJFCHDKPhuyks6R8uigef-9NM23WJEg@z>
2021-09-04 12:00 ` Jens Axboe
2021-09-03 12:00 Jens Axboe
2021-08-29 12:00 Jens Axboe
2021-08-28 12:00 Jens Axboe
2021-08-27 12:00 Jens Axboe
2021-08-21 12:00 Jens Axboe
2021-08-19 12:00 Jens Axboe
2021-08-14 12:00 Jens Axboe
2021-08-12 12:00 Jens Axboe
2021-08-07 12:00 Jens Axboe
2021-08-05 12:00 Jens Axboe
2021-08-04 12:00 Jens Axboe
2021-08-03 12:00 Jens Axboe
2021-08-02 12:00 Jens Axboe
2021-07-29 12:00 Jens Axboe
2021-07-26 12:00 Jens Axboe
2021-07-16 12:00 Jens Axboe
2021-07-08 12:00 Jens Axboe
2021-07-02 12:00 Jens Axboe
2021-06-30 12:00 Jens Axboe
2021-06-21 12:00 Jens Axboe
2021-06-18 12:00 Jens Axboe
2021-06-15 12:00 Jens Axboe
2021-06-11 12:00 Jens Axboe
2021-06-09 12:00 Jens Axboe
2021-06-04 12:00 Jens Axboe
2021-05-28 12:00 Jens Axboe
2021-05-27 12:00 Jens Axboe
2021-05-26 12:00 Jens Axboe
2021-05-19 12:00 Jens Axboe
2021-05-15 12:00 Jens Axboe
2021-05-12 12:00 Jens Axboe
2021-05-11 12:00 Jens Axboe
2021-05-09 12:00 Jens Axboe
2021-05-07 12:00 Jens Axboe
2021-04-28 12:00 Jens Axboe
2021-04-26 12:00 Jens Axboe
2021-04-24 12:00 Jens Axboe
2021-04-23 12:00 Jens Axboe
2021-04-17 12:00 Jens Axboe
2021-04-16 12:00 Jens Axboe
2021-04-14 12:00 Jens Axboe
2021-04-13 12:00 Jens Axboe
2021-04-11 12:00 Jens Axboe
2021-03-31 12:00 Jens Axboe
2021-03-19 12:00 Jens Axboe
2021-03-18 12:00 Jens Axboe
2021-03-12 13:00 Jens Axboe
2021-03-11 13:00 Jens Axboe
2021-03-10 13:00 Jens Axboe
2021-03-09 13:00 Jens Axboe
2021-03-07 13:00 Jens Axboe
2021-02-22 13:00 Jens Axboe
2021-02-17 13:00 Jens Axboe
2021-02-15 13:00 Jens Axboe
2021-02-11 13:00 Jens Axboe
2021-01-30 13:00 Jens Axboe
2021-01-28 13:00 Jens Axboe
2021-01-27 13:00 Jens Axboe
2021-01-26 13:00 Jens Axboe
2021-01-24 13:00 Jens Axboe
2021-01-17 13:00 Jens Axboe
2021-01-16 13:00 Jens Axboe
2021-01-13 13:00 Jens Axboe
2021-01-10 13:00 Jens Axboe
2021-01-08 13:00 Jens Axboe
2021-01-07 13:00 Jens Axboe
2021-01-06 13:00 Jens Axboe
2020-12-30 13:00 Jens Axboe
2020-12-25 13:00 Jens Axboe
2020-12-18 13:00 Jens Axboe
2020-12-16 13:00 Jens Axboe
2020-12-08 13:00 Jens Axboe
2020-12-06 13:00 Jens Axboe
2020-12-05 13:00 Jens Axboe
2020-12-04 13:00 Jens Axboe
2020-11-28 13:00 Jens Axboe
2020-11-26 13:00 Jens Axboe
2020-11-23 13:00 Jens Axboe
2020-11-14 13:00 Jens Axboe
2020-11-13 13:00 Jens Axboe
2020-11-10 13:00 Jens Axboe
2020-11-06 13:00 Jens Axboe
2020-11-12 20:51 ` Rebecca Cran
2020-11-05 13:00 Jens Axboe
2020-11-02 13:00 Jens Axboe
2020-10-31 12:00 Jens Axboe
2020-10-29 12:00 Jens Axboe
2020-10-15 12:00 Jens Axboe
2020-10-14 12:00 Jens Axboe
2020-10-11 12:00 Jens Axboe
2020-10-10 12:00 Jens Axboe
2020-09-15 12:00 Jens Axboe
2020-09-12 12:00 Jens Axboe
2020-09-10 12:00 Jens Axboe
2020-09-09 12:00 Jens Axboe
2020-09-08 12:00 Jens Axboe
2020-09-07 12:00 Jens Axboe
2020-09-06 12:00 Jens Axboe
2020-09-04 12:00 Jens Axboe
2020-09-02 12:00 Jens Axboe
2020-09-01 12:00 Jens Axboe
2020-08-30 12:00 Jens Axboe
2020-08-29 12:00 Jens Axboe
2020-08-28 12:00 Jens Axboe
2020-08-23 12:00 Jens Axboe
2020-08-22 12:00 Jens Axboe
2020-08-20 12:00 Jens Axboe
2020-08-19 12:00 Jens Axboe
2020-08-18 12:00 Jens Axboe
2020-08-17 12:00 Jens Axboe
2020-08-15 12:00 Jens Axboe
2020-08-14 12:00 Jens Axboe
2020-08-13 12:00 Jens Axboe
2020-08-12 12:00 Jens Axboe
2020-08-11 12:00 Jens Axboe
2020-08-08 12:00 Jens Axboe
2020-08-02 12:00 Jens Axboe
2020-07-28 12:00 Jens Axboe
2020-07-27 12:00 Jens Axboe
2020-07-26 12:00 Jens Axboe
2020-07-25 12:00 Jens Axboe
2020-07-22 12:00 Jens Axboe
2020-07-21 12:00 Jens Axboe
2020-07-19 12:00 Jens Axboe
2020-07-18 12:00 Jens Axboe
2020-07-15 12:00 Jens Axboe
2020-07-14 12:00 Jens Axboe
2020-07-09 12:00 Jens Axboe
2020-07-05 12:00 Jens Axboe
2020-07-04 12:00 Jens Axboe
2020-07-03 12:00 Jens Axboe
2020-06-29 12:00 Jens Axboe
2020-06-25 12:00 Jens Axboe
2020-06-24 12:00 Jens Axboe
2020-06-22 12:00 Jens Axboe
2020-06-13 12:00 Jens Axboe
2020-06-10 12:00 Jens Axboe
2020-06-08 12:00 Jens Axboe
2020-06-06 12:00 Jens Axboe
2020-06-04 12:00 Jens Axboe
2020-06-03 12:00 Jens Axboe
2020-05-30 12:00 Jens Axboe
2020-05-29 12:00 Jens Axboe
2020-05-26 12:00 Jens Axboe
2020-05-25 12:00 Jens Axboe
2020-05-24 12:00 Jens Axboe
2020-05-22 12:00 Jens Axboe
2020-05-21 12:00 Jens Axboe
2020-05-20 12:00 Jens Axboe
2020-05-19 12:00 Jens Axboe
2020-05-15 12:00 Jens Axboe
2020-05-14 12:00 Jens Axboe
2020-05-12 12:00 Jens Axboe
2020-04-30 12:00 Jens Axboe
2020-04-22 12:00 Jens Axboe
2020-04-21 12:00 Jens Axboe
2020-04-18 12:00 Jens Axboe
2020-04-17 12:00 Jens Axboe
2020-04-16 12:00 Jens Axboe
2020-04-14 12:00 Jens Axboe
2020-04-09 12:00 Jens Axboe
2020-04-08 12:00 Jens Axboe
2020-04-07 12:00 Jens Axboe
2020-04-03 12:00 Jens Axboe
2020-04-01 12:00 Jens Axboe
2020-03-27 12:00 Jens Axboe
2020-03-18 12:00 Jens Axboe
2020-03-17 12:00 Jens Axboe
2020-03-16 12:00 Jens Axboe
2020-03-13 12:00 Jens Axboe
2020-03-04 13:00 Jens Axboe
2020-03-03 13:00 Jens Axboe
2020-03-02 13:00 Jens Axboe
2020-02-27 13:00 Jens Axboe
2020-02-25 13:00 Jens Axboe
2020-02-07 13:00 Jens Axboe
2020-02-06 13:00 Jens Axboe
2020-02-05 13:00 Jens Axboe
2020-01-29 13:00 Jens Axboe
2020-01-24 13:00 Jens Axboe
2020-01-23 13:00 Jens Axboe
2020-01-19 13:00 Jens Axboe
2020-01-17 13:00 Jens Axboe
2020-01-15 13:00 Jens Axboe
2020-01-14 13:00 Jens Axboe
2020-01-10 13:00 Jens Axboe
2020-01-07 13:00 Jens Axboe
2020-01-06 13:00 Jens Axboe
2020-01-05 13:00 Jens Axboe
2020-01-04 13:00 Jens Axboe
2019-12-26 13:00 Jens Axboe
2019-12-24 13:00 Jens Axboe
2019-12-22 13:00 Jens Axboe
2019-12-19 13:00 Jens Axboe
2019-12-17 13:00 Jens Axboe
2019-12-12 13:00 Jens Axboe
2019-12-07 13:00 Jens Axboe
2019-11-28 13:00 Jens Axboe
2019-11-27 13:00 Jens Axboe
2019-11-26 13:00 Jens Axboe
2019-11-15 13:00 Jens Axboe
2019-11-07 15:25 Jens Axboe
2019-11-07 13:00 Jens Axboe
2019-11-06 13:00 Jens Axboe
2019-11-04 13:00 Jens Axboe
2019-11-03 13:00 Jens Axboe
2019-10-30 12:00 Jens Axboe
2019-10-25 12:00 Jens Axboe
2019-10-22 12:00 Jens Axboe
2019-10-16 12:00 Jens Axboe
2019-10-15 12:00 Jens Axboe
2019-10-14 12:00 Jens Axboe
2019-10-09 12:00 Jens Axboe
2019-10-08 12:00 Jens Axboe
2019-10-07 12:00 Jens Axboe
2019-10-03 12:00 Jens Axboe
2019-10-02 12:00 Jens Axboe
2019-09-28 12:00 Jens Axboe
2019-09-26 12:00 Jens Axboe
2019-09-25 12:00 Jens Axboe
2019-09-24 12:00 Jens Axboe
2019-09-20 12:00 Jens Axboe
2019-09-14 12:00 Jens Axboe
2019-09-13 12:00 Jens Axboe
2019-09-06 12:00 Jens Axboe
2019-09-04 12:00 Jens Axboe
2019-08-30 12:00 Jens Axboe
2019-08-29 12:00 Jens Axboe
2019-08-16 12:00 Jens Axboe
2019-08-15 12:00 Jens Axboe
2019-08-15 14:27 ` Rebecca Cran
2019-08-15 14:28 ` Jens Axboe
2019-08-15 15:05 ` Rebecca Cran
2019-08-15 15:17 ` Jens Axboe
2019-08-15 15:35 ` Rebecca Cran
2019-08-09 12:00 Jens Axboe
2019-08-06 12:00 Jens Axboe
2019-08-04 12:00 Jens Axboe
2019-08-03 12:00 Jens Axboe
2019-08-01 12:00 Jens Axboe
2019-07-27 12:00 Jens Axboe
2019-07-13 12:00 Jens Axboe
2019-07-10 12:00 Jens Axboe
2019-07-02 12:00 Jens Axboe
2019-06-01 12:00 Jens Axboe
2019-05-24 12:00 Jens Axboe
2019-05-23 12:00 Jens Axboe
2019-05-21 12:00 Jens Axboe
2019-05-17 12:00 Jens Axboe
2019-05-10 12:00 Jens Axboe
2019-05-09 12:00 Jens Axboe
2019-05-09 12:47 ` Erwan Velu
2019-05-09 14:07 ` Jens Axboe
2019-05-09 15:47 ` Elliott, Robert (Servers)
2019-05-09 15:52 ` Sebastien Boisvert
2019-05-09 16:12 ` Elliott, Robert (Servers)
2019-05-09 15:57 ` Jens Axboe
2019-05-07 12:00 Jens Axboe
2019-04-26 12:00 Jens Axboe
2019-04-23 12:00 Jens Axboe
2019-04-20 12:00 Jens Axboe
2019-04-19 12:00 Jens Axboe
2019-04-18 12:00 Jens Axboe
2019-04-02 12:00 Jens Axboe
2019-03-26 12:00 Jens Axboe
2019-03-22 12:00 Jens Axboe
2019-03-12 12:00 Jens Axboe
2019-03-09 13:00 Jens Axboe
2019-03-08 13:00 Jens Axboe
2019-03-07 13:00 Jens Axboe
2019-03-01 13:00 Jens Axboe
2019-02-25 13:00 Jens Axboe
2019-02-24 13:00 Jens Axboe
2019-02-22 13:00 Jens Axboe
2019-02-12 13:00 Jens Axboe
2019-02-11 13:00 Jens Axboe
2019-02-09 13:00 Jens Axboe
2019-02-08 13:00 Jens Axboe
2019-02-05 13:00 Jens Axboe
2019-02-01 13:00 Jens Axboe
2019-01-30 13:00 Jens Axboe
2019-01-29 13:00 Jens Axboe
2019-01-25 13:00 Jens Axboe
2019-01-24 13:00 Jens Axboe
2019-01-17 13:00 Jens Axboe
2019-01-16 13:00 Jens Axboe
2019-01-15 13:00 Jens Axboe
2019-01-14 13:00 Jens Axboe
2019-01-13 13:00 Jens Axboe
2019-01-12 13:00 Jens Axboe
2019-01-11 13:00 Jens Axboe
2019-01-10 13:00 Jens Axboe
2019-01-09 13:00 Jens Axboe
2019-01-08 13:00 Jens Axboe
2019-01-06 13:00 Jens Axboe
2019-01-05 13:00 Jens Axboe
2018-12-31 13:00 Jens Axboe
2018-12-22 13:00 Jens Axboe
2018-12-20 13:00 Jens Axboe
2018-12-15 13:00 Jens Axboe
2018-12-14 13:00 Jens Axboe
2018-12-13 13:00 Jens Axboe
2018-12-11 13:00 Jens Axboe
2018-12-05 13:00 Jens Axboe
2018-12-02 13:00 Jens Axboe
2018-12-01 13:00 Jens Axboe
2018-11-30 13:00 Jens Axboe
2018-11-28 13:00 Jens Axboe
2018-11-27 13:00 Jens Axboe
2018-11-26 13:00 Jens Axboe
2018-11-25 13:00 Jens Axboe
2018-11-22 13:00 Jens Axboe
2018-11-21 13:00 Jens Axboe
2018-11-20 13:00 Jens Axboe
2018-11-16 13:00 Jens Axboe
2018-11-07 13:00 Jens Axboe
2018-11-03 12:00 Jens Axboe
2018-10-27 12:00 Jens Axboe
2018-10-24 12:00 Jens Axboe
2018-10-20 12:00 Jens Axboe
2018-10-19 12:00 Jens Axboe
2018-10-16 12:00 Jens Axboe
2018-10-09 12:00 Jens Axboe
2018-10-06 12:00 Jens Axboe
2018-10-05 12:00 Jens Axboe
2018-10-04 12:00 Jens Axboe
2018-10-02 12:00 Jens Axboe
2018-10-01 12:00 Jens Axboe
2018-09-30 12:00 Jens Axboe
2018-09-28 12:00 Jens Axboe
2018-09-27 12:00 Jens Axboe
2018-09-26 12:00 Jens Axboe
2018-09-23 12:00 Jens Axboe
2018-09-22 12:00 Jens Axboe
2018-09-21 12:00 Jens Axboe
2018-09-20 12:00 Jens Axboe
2018-09-18 12:00 Jens Axboe
2018-09-17 12:00 Jens Axboe
2018-09-13 12:00 Jens Axboe
2018-09-12 12:00 Jens Axboe
2018-09-11 12:00 Jens Axboe
2018-09-10 12:00 Jens Axboe
2018-09-09 12:00 Jens Axboe
2018-09-08 12:00 Jens Axboe
2018-09-07 12:00 Jens Axboe
2018-09-06 12:00 Jens Axboe
2018-09-04 12:00 Jens Axboe
2018-09-01 12:00 Jens Axboe
2018-08-31 12:00 Jens Axboe
2018-08-26 12:00 Jens Axboe
2018-08-25 12:00 Jens Axboe
2018-08-24 12:00 Jens Axboe
2018-08-23 12:00 Jens Axboe
2018-08-22 12:00 Jens Axboe
2018-08-21 12:00 Jens Axboe
2018-08-18 12:00 Jens Axboe
2018-08-17 12:00 Jens Axboe
2018-08-16 12:00 Jens Axboe
2018-08-15 12:00 Jens Axboe
2018-08-14 12:00 Jens Axboe
2018-08-13 12:00 Jens Axboe
2018-08-11 12:00 Jens Axboe
2018-08-10 12:00 Jens Axboe
2018-08-08 12:00 Jens Axboe
2018-08-06 12:00 Jens Axboe
2018-08-04 12:00 Jens Axboe
2018-08-03 12:00 Jens Axboe
2018-07-31 12:00 Jens Axboe
2018-07-27 12:00 Jens Axboe
2018-07-26 12:00 Jens Axboe
2018-07-25 12:00 Jens Axboe
2018-07-24 12:00 Jens Axboe
2018-07-13 12:00 Jens Axboe
2018-07-12 12:00 Jens Axboe
2018-07-11 12:00 Jens Axboe
2018-07-05 12:00 Jens Axboe
2018-06-30 12:00 Jens Axboe
2018-06-22 12:00 Jens Axboe
2018-06-19 12:00 Jens Axboe
2018-06-16 12:00 Jens Axboe
2018-06-13 12:00 Jens Axboe
2018-06-12 12:00 Jens Axboe
2018-06-09 12:00 Jens Axboe
2018-06-08 12:00 Jens Axboe
2018-06-06 12:00 Jens Axboe
2018-06-05 12:00 Jens Axboe
2018-06-02 12:00 Jens Axboe
2018-06-01 12:00 Jens Axboe
2018-05-26 12:00 Jens Axboe
2018-05-19 12:00 Jens Axboe
2018-05-17 12:00 Jens Axboe
2018-05-15 12:00 Jens Axboe
2018-04-27 12:00 Jens Axboe
2018-04-25 12:00 Jens Axboe
2018-04-21 12:00 Jens Axboe
2018-04-19 12:00 Jens Axboe
2018-04-18 12:00 Jens Axboe
2018-04-17 12:00 Jens Axboe
2018-04-15 12:00 Jens Axboe
2018-04-14 12:00 Jens Axboe
2018-04-11 12:00 Jens Axboe
2018-04-10 12:00 Jens Axboe
2018-04-09 12:00 Jens Axboe
2018-04-07 12:00 Jens Axboe
2018-04-05 12:00 Jens Axboe
2018-04-04 12:00 Jens Axboe
2018-03-31 12:00 Jens Axboe
2018-03-30 12:00 Jens Axboe
2018-03-24 12:00 Jens Axboe
2018-03-23 12:00 Jens Axboe
2018-03-22 12:00 Jens Axboe
2018-03-21 12:00 Jens Axboe
2018-03-20 12:00 Jens Axboe
2018-03-14 12:00 Jens Axboe
2018-03-13 12:00 Jens Axboe
2018-03-10 13:00 Jens Axboe
2018-03-08 13:00 Jens Axboe
2018-03-07 13:00 Jens Axboe
2018-03-06 13:00 Jens Axboe
2018-03-03 13:00 Jens Axboe
2018-03-02 13:00 Jens Axboe
2018-03-01 13:00 Jens Axboe
2018-02-28 13:00 Jens Axboe
2018-02-27 13:00 Jens Axboe
2018-02-21 13:00 Jens Axboe
2018-02-15 13:00 Jens Axboe
2018-02-13 13:00 Jens Axboe
2018-02-11 13:00 Jens Axboe
2018-02-09 13:00 Jens Axboe
2018-02-08 13:00 Jens Axboe
2018-01-26 13:00 Jens Axboe
2018-01-25 13:00 Jens Axboe
2018-01-17 13:00 Jens Axboe
2018-01-13 13:00 Jens Axboe
2018-01-11 13:00 Jens Axboe
2018-01-07 13:00 Jens Axboe
2018-01-06 13:00 Jens Axboe
2018-01-03 13:00 Jens Axboe
2017-12-30 13:00 Jens Axboe
2017-12-29 13:00 Jens Axboe
2017-12-28 13:00 Jens Axboe
2017-12-22 13:00 Jens Axboe
2017-12-20 13:00 Jens Axboe
2017-12-16 13:00 Jens Axboe
2017-12-15 13:00 Jens Axboe
2017-12-14 13:00 Jens Axboe
2017-12-09 13:00 Jens Axboe
2017-12-08 13:00 Jens Axboe
2017-12-07 13:00 Jens Axboe
2017-12-04 13:00 Jens Axboe
2017-12-03 13:00 Jens Axboe
2017-12-02 13:00 Jens Axboe
2017-12-01 13:00 Jens Axboe
2017-11-30 13:00 Jens Axboe
2017-11-29 13:00 Jens Axboe
2017-11-24 13:00 Jens Axboe
2017-11-23 13:00 Jens Axboe
2017-11-18 13:00 Jens Axboe
2017-11-20 15:00 ` Elliott, Robert (Persistent Memory)
2017-11-17 13:00 Jens Axboe
2017-11-16 13:00 Jens Axboe
2017-11-07 13:00 Jens Axboe
2017-11-04 12:00 Jens Axboe
2017-11-03 12:00 Jens Axboe
2017-11-02 12:00 Jens Axboe
2017-11-01 12:00 Jens Axboe
2017-10-31 12:00 Jens Axboe
2017-10-27 12:00 Jens Axboe
2017-10-26 12:00 Jens Axboe
2017-10-21 12:00 Jens Axboe
2017-10-18 12:00 Jens Axboe
2017-10-13 12:00 Jens Axboe
2017-10-12 12:00 Jens Axboe
2017-10-11 12:00 Jens Axboe
2017-10-10 12:00 Jens Axboe
2017-10-07 12:00 Jens Axboe
2017-10-04 12:00 Jens Axboe
2017-09-29 12:00 Jens Axboe
2017-09-28 12:00 Jens Axboe
2017-09-27 12:00 Jens Axboe
2017-09-21 12:00 Jens Axboe
2017-09-19 12:00 Jens Axboe
2017-09-15 12:00 Jens Axboe
2017-09-14 12:00 Jens Axboe
2017-09-13 12:00 Jens Axboe
2017-09-12 12:00 Jens Axboe
2017-09-06 12:00 Jens Axboe
2017-09-03 12:00 Jens Axboe
2017-09-02 12:00 Jens Axboe
2017-09-01 12:00 Jens Axboe
2017-08-31 12:00 Jens Axboe
2017-08-30 12:00 Jens Axboe
2017-08-29 12:00 Jens Axboe
2017-08-28 12:00 Jens Axboe
2017-08-24 12:00 Jens Axboe
2017-08-23 12:00 Jens Axboe
2017-08-18 12:00 Jens Axboe
2017-08-17 12:00 Jens Axboe
2017-08-15 12:00 Jens Axboe
2017-08-10 12:00 Jens Axboe
2017-08-09 12:00 Jens Axboe
2017-08-08 12:00 Jens Axboe
2017-08-02 12:00 Jens Axboe
2017-08-01 12:00 Jens Axboe
2017-07-28 12:00 Jens Axboe
2017-07-26 12:00 Jens Axboe
2017-07-21 12:00 Jens Axboe
2017-07-17 12:00 Jens Axboe
2017-07-15 12:00 Jens Axboe
2017-07-14 12:00 Jens Axboe
2017-07-13 12:00 Jens Axboe
2017-07-11 12:00 Jens Axboe
2017-07-08 12:00 Jens Axboe
2017-07-07 12:00 Jens Axboe
2017-07-05 12:00 Jens Axboe
2017-07-04 12:00 Jens Axboe
2017-07-03 12:00 Jens Axboe
2017-06-29 12:00 Jens Axboe
2017-06-28 12:00 Jens Axboe
2017-06-27 12:00 Jens Axboe
2017-06-26 12:00 Jens Axboe
2017-06-24 12:00 Jens Axboe
2017-06-23 12:00 Jens Axboe
2017-06-20 12:00 Jens Axboe
2017-06-19 12:00 Jens Axboe
2017-06-16 12:00 Jens Axboe
2017-06-15 12:00 Jens Axboe
2017-06-13 12:00 Jens Axboe
2017-06-09 12:00 Jens Axboe
2017-06-08 12:00 Jens Axboe
2017-06-06 12:00 Jens Axboe
2017-06-03 12:00 Jens Axboe
2017-05-27 12:00 Jens Axboe
2017-05-25 12:00 Jens Axboe
2017-05-23 12:00 Jens Axboe
2017-05-20 12:00 Jens Axboe
2017-05-19 12:00 Jens Axboe
2017-05-10 12:00 Jens Axboe
2017-05-05 12:00 Jens Axboe
2017-05-04 12:00 Jens Axboe
2017-05-02 12:00 Jens Axboe
2017-05-01 12:00 Jens Axboe
2017-04-27 12:00 Jens Axboe
2017-04-26 12:00 Jens Axboe
2017-04-20 12:00 Jens Axboe
2017-04-11 12:00 Jens Axboe
2017-04-09 12:00 Jens Axboe
2017-04-08 12:00 Jens Axboe
2017-04-05 12:00 Jens Axboe
2017-04-04 12:00 Jens Axboe
2017-04-03 12:00 Jens Axboe
2017-03-29 12:00 Jens Axboe
2017-03-22 12:00 Jens Axboe
2017-03-20 12:00 Jens Axboe
2017-03-18 12:00 Jens Axboe
2017-03-17 12:00 Jens Axboe
2017-03-15 12:00 Jens Axboe
2017-03-14 12:00 Jens Axboe
2017-03-13 12:00 Jens Axboe
2017-03-11 13:00 Jens Axboe
2017-03-09 13:00 Jens Axboe
2017-03-08 13:00 Jens Axboe
2017-02-25 13:00 Jens Axboe
2017-02-24 13:00 Jens Axboe
2017-02-23 13:00 Jens Axboe
2017-02-22 13:00 Jens Axboe
2017-02-21 13:00 Jens Axboe
2017-02-20 13:00 Jens Axboe
2017-02-18 13:00 Jens Axboe
2017-02-17 13:00 Jens Axboe
2017-02-16 13:00 Jens Axboe
2017-02-15 13:00 Jens Axboe
2017-02-14 13:00 Jens Axboe
2017-02-08 13:00 Jens Axboe
2017-02-05 13:00 Jens Axboe
2017-02-03 13:00 Jens Axboe
2017-01-31 13:00 Jens Axboe
2017-01-28 13:00 Jens Axboe
2017-01-27 13:00 Jens Axboe
2017-01-24 13:00 Jens Axboe
2017-01-21 13:00 Jens Axboe
2017-01-20 13:00 Jens Axboe
2017-01-19 13:00 Jens Axboe
2017-01-18 13:00 Jens Axboe
2017-01-13 13:00 Jens Axboe
2017-01-17 14:42 ` Elliott, Robert (Persistent Memory)
2017-01-17 15:51 ` Jens Axboe
2017-01-17 16:03 ` Jens Axboe
2017-01-12 13:00 Jens Axboe
2017-01-11 13:00 Jens Axboe
2017-01-07 13:00 Jens Axboe
2017-01-06 13:00 Jens Axboe
2017-01-05 13:00 Jens Axboe
2017-01-04 13:00 Jens Axboe
2017-01-03 13:00 Jens Axboe
2016-12-30 13:00 Jens Axboe
2016-12-24 13:00 Jens Axboe
2016-12-21 13:00 Jens Axboe
2016-12-20 13:00 Jens Axboe
2016-12-17 13:00 Jens Axboe
2016-12-16 13:00 Jens Axboe
2016-12-14 13:00 Jens Axboe
2016-12-13 13:00 Jens Axboe
2016-12-06 13:00 Jens Axboe
2016-12-02 13:00 Jens Axboe
2016-11-28 13:00 Jens Axboe
2016-11-17 13:00 Jens Axboe
2016-11-16 13:00 Jens Axboe
2016-11-14 13:00 Jens Axboe
2016-11-13 13:00 Jens Axboe
2016-11-03 12:00 Jens Axboe
2016-11-02 12:00 Jens Axboe
2016-10-27 12:00 Jens Axboe
2016-10-26 12:00 Jens Axboe
2016-10-25 12:00 Jens Axboe
2016-10-24 12:00 Jens Axboe
2016-10-21 12:00 Jens Axboe
2016-10-20 12:00 Jens Axboe
2016-10-19 12:00 Jens Axboe
2016-10-18 12:00 Jens Axboe
2016-10-15 12:00 Jens Axboe
2016-10-13 12:00 Jens Axboe
2016-10-12 12:00 Jens Axboe
2016-09-28 12:00 Jens Axboe
2016-09-26 12:00 Jens Axboe
2016-09-24 12:00 Jens Axboe
2016-09-21 12:00 Jens Axboe
2016-09-20 12:00 Jens Axboe
2016-09-17 12:00 Jens Axboe
2016-09-16 12:00 Jens Axboe
2016-09-14 12:00 Jens Axboe
2016-09-13 12:00 Jens Axboe
2016-09-12 12:00 Jens Axboe
2016-09-07 12:00 Jens Axboe
2016-09-03 12:00 Jens Axboe
2016-08-30 12:00 Jens Axboe
2016-08-27 12:00 Jens Axboe
2016-08-26 12:00 Jens Axboe
2016-08-23 12:00 Jens Axboe
2016-08-21 12:00 Jens Axboe
2016-08-19 12:00 Jens Axboe
2016-08-17 12:00 Jens Axboe
2016-08-16 12:00 Jens Axboe
2016-08-15 12:00 Jens Axboe
2016-08-09 12:00 Jens Axboe
2016-08-08 12:00 Jens Axboe
2016-08-08 13:31 ` Erwan Velu
2016-08-08 13:47 ` Jens Axboe
2016-08-05 12:00 Jens Axboe
2016-08-04 12:00 Jens Axboe
2016-08-03 12:00 Jens Axboe
2016-08-02 12:00 Jens Axboe
2016-07-30 12:00 Jens Axboe
2016-07-29 12:00 Jens Axboe
2016-07-28 12:00 Jens Axboe
2016-07-27 12:00 Jens Axboe
2016-07-23 12:00 Jens Axboe
2016-07-21 12:00 Jens Axboe
2016-07-20 12:00 Jens Axboe
2016-07-19 12:00 Jens Axboe
2016-07-15 12:00 Jens Axboe
2016-07-14 12:00 Jens Axboe
2016-07-13 12:00 Jens Axboe
2016-07-12 12:00 Jens Axboe
2016-07-07 12:00 Jens Axboe
2016-07-06 12:00 Jens Axboe
2016-06-30 12:00 Jens Axboe
2016-06-14 12:00 Jens Axboe
2016-06-12 12:00 Jens Axboe
2016-06-10 12:00 Jens Axboe
2016-06-09 12:00 Jens Axboe
2016-06-07 12:00 Jens Axboe
2016-06-04 12:00 Jens Axboe
2016-06-03 12:00 Jens Axboe
2016-05-28 12:00 Jens Axboe
2016-05-26 12:00 Jens Axboe
2016-05-25 12:00 Jens Axboe
2016-05-24 12:00 Jens Axboe
2016-05-22 12:00 Jens Axboe
2016-05-21 12:00 Jens Axboe
2016-05-20 12:00 Jens Axboe
2016-05-19 12:00 Jens Axboe
2016-05-18 12:00 Jens Axboe
2016-05-17 12:00 Jens Axboe
2016-05-11 12:00 Jens Axboe
2016-05-10 12:00 Jens Axboe
2016-05-07 12:00 Jens Axboe
2016-05-06 12:00 Jens Axboe
2016-05-04 12:00 Jens Axboe
2016-05-03 12:00 Jens Axboe
2016-04-29 12:00 Jens Axboe
2016-04-24 12:00 Jens Axboe
2016-04-21 12:00 Jens Axboe
2016-04-19 12:00 Jens Axboe
2016-04-14 12:00 Jens Axboe
2016-04-05 12:00 Jens Axboe
2016-04-02 12:00 Jens Axboe
2016-03-30 12:00 Jens Axboe
2016-03-26 12:00 Jens Axboe
2016-03-25 12:00 Jens Axboe
2016-03-24 12:00 Jens Axboe
2016-03-21 12:00 Jens Axboe
2016-03-19 12:00 Jens Axboe
2016-03-16 12:00 Jens Axboe
2016-03-11 13:00 Jens Axboe
2016-03-10 13:00 Jens Axboe
2016-03-09 13:00 Jens Axboe
2016-03-08 13:00 Jens Axboe
2016-03-05 13:00 Jens Axboe
2016-03-04 13:00 Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170524120002.5B7C22C246B@kernel.dk \
--to=axboe@kernel.dk \
--cc=fio@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).