Flexible I/O Tester development
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: fio@vger.kernel.org
Subject: Recent changes (master)
Date: Thu, 31 Dec 2015 06:00:01 -0700 (MST)	[thread overview]
Message-ID: <20151231130001.DFF2C2C00B6@kernel.dk> (raw)

The following changes since commit de26b8245b06c99ec64d9f88cfde1ed9627f871a:

  configure: add --enable-lex (2015-12-29 20:58:13 -0700)

are available in the git repository at:

  git://git.kernel.dk/fio.git master

for you to fetch changes up to 5f3bd0fd67254e3750681f0700a0cc162faee500:

  options: move pattern_fmt_desc where we need it (2015-12-30 09:27:05 -0700)

----------------------------------------------------------------
Jens Axboe (4):
      options: make the groups/categories constant
      options: split out option grouping code
      options: we don't need the crc32c verify include
      options: move pattern_fmt_desc where we need it

 Makefile            |   2 +-
 engines/cpu.c       |   1 +
 engines/e4defrag.c  |   1 +
 engines/glusterfs.c |   1 +
 engines/libaio.c    |   1 +
 engines/libhdfs.c   |   2 +-
 engines/net.c       |   1 +
 engines/rbd.c       |   1 +
 engines/rdma.c      |   1 +
 goptions.c          |  10 +--
 optgroup.c          | 166 ++++++++++++++++++++++++++++++++++++++++++++++
 optgroup.h          | 102 ++++++++++++++++++++++++++++
 options.c           | 186 +++-------------------------------------------------
 options.h           |  97 ---------------------------
 parse.c             |   1 +
 profiles/act.c      |   1 +
 profiles/tiobench.c |   1 +
 17 files changed, 296 insertions(+), 279 deletions(-)
 create mode 100644 optgroup.c
 create mode 100644 optgroup.h

---

Diff of recent changes:

diff --git a/Makefile b/Makefile
index 1b5c9a6..bd5f1bb 100644
--- a/Makefile
+++ b/Makefile
@@ -45,7 +45,7 @@ SOURCE :=	$(patsubst $(SRCDIR)/%,%,$(wildcard $(SRCDIR)/crc/*.c)) \
 		server.c client.c iolog.c backend.c libfio.c flow.c cconv.c \
 		gettime-thread.c helpers.c json.c idletime.c td_error.c \
 		profiles/tiobench.c profiles/act.c io_u_queue.c filelock.c \
-		workqueue.c rate-submit.c
+		workqueue.c rate-submit.c optgroup.c
 
 ifdef CONFIG_LIBHDFS
   HDFSFLAGS= -I $(JAVA_HOME)/include -I $(JAVA_HOME)/include/linux -I $(FIO_LIBHDFS_INCLUDE)
diff --git a/engines/cpu.c b/engines/cpu.c
index 7e4d737..7643a8c 100644
--- a/engines/cpu.c
+++ b/engines/cpu.c
@@ -6,6 +6,7 @@
  *
  */
 #include "../fio.h"
+#include "../optgroup.h"
 
 struct cpu_options {
 	void *pad;
diff --git a/engines/e4defrag.c b/engines/e4defrag.c
index d6113a9..c0667fe 100644
--- a/engines/e4defrag.c
+++ b/engines/e4defrag.c
@@ -17,6 +17,7 @@
 #include <fcntl.h>
 
 #include "../fio.h"
+#include "../optgroup.h"
 
 #ifndef EXT4_IOC_MOVE_EXT
 #define EXT4_IOC_MOVE_EXT               _IOWR('f', 15, struct move_extent)
diff --git a/engines/glusterfs.c b/engines/glusterfs.c
index 507cd25..dec9fb5 100644
--- a/engines/glusterfs.c
+++ b/engines/glusterfs.c
@@ -6,6 +6,7 @@
  */
 
 #include "gfapi.h"
+#include "../optgroup.h"
 
 struct fio_option gfapi_options[] = {
 	{
diff --git a/engines/libaio.c b/engines/libaio.c
index 60dc49d..9d562bb 100644
--- a/engines/libaio.c
+++ b/engines/libaio.c
@@ -13,6 +13,7 @@
 
 #include "../fio.h"
 #include "../lib/pow2.h"
+#include "../optgroup.h"
 
 static int fio_libaio_commit(struct thread_data *td);
 
diff --git a/engines/libhdfs.c b/engines/libhdfs.c
index f690b00..faad3f8 100644
--- a/engines/libhdfs.c
+++ b/engines/libhdfs.c
@@ -15,7 +15,7 @@
 #include <hdfs.h>
 
 #include "../fio.h"
-
+#include "../optgroup.h"
 
 #define CHUNCK_NAME_LENGTH_MAX 80
 #define CHUNCK_CREATION_BUFFER_SIZE 65536
diff --git a/engines/net.c b/engines/net.c
index cd19535..9301ccf 100644
--- a/engines/net.c
+++ b/engines/net.c
@@ -22,6 +22,7 @@
 
 #include "../fio.h"
 #include "../verify.h"
+#include "../optgroup.h"
 
 struct netio_data {
 	int listenfd;
diff --git a/engines/rbd.c b/engines/rbd.c
index 2be9b55..8252d27 100644
--- a/engines/rbd.c
+++ b/engines/rbd.c
@@ -8,6 +8,7 @@
 #include <rbd/librbd.h>
 
 #include "../fio.h"
+#include "../optgroup.h"
 
 struct fio_rbd_iou {
 	struct io_u *io_u;
diff --git a/engines/rdma.c b/engines/rdma.c
index 1006b7e..87ba465 100644
--- a/engines/rdma.c
+++ b/engines/rdma.c
@@ -41,6 +41,7 @@
 
 #include "../fio.h"
 #include "../hash.h"
+#include "../optgroup.h"
 
 #include <rdma/rdma_cma.h>
 #include <infiniband/arch.h>
diff --git a/goptions.c b/goptions.c
index 9279b22..b3d3684 100644
--- a/goptions.c
+++ b/goptions.c
@@ -11,6 +11,7 @@
 #include "ghelpers.h"
 #include "gerror.h"
 #include "parse.h"
+#include "optgroup.h"
 
 struct gopt {
 	GtkWidget *box;
@@ -95,7 +96,7 @@ static GtkWidget *gopt_get_group_frame(struct gopt_job_view *gjv,
 				       GtkWidget *box, uint64_t groupmask)
 {
 	uint64_t mask, group;
-	struct opt_group *og;
+	const struct opt_group *og;
 	GtkWidget *frame, *hbox;
 	struct gopt_frame_widget *gfw;
 
@@ -1136,7 +1137,7 @@ static void gopt_add_options(struct gopt_job_view *gjv,
 	for (i = 0; fio_options[i].name; i++) {
 		struct fio_option *o = &fio_options[i];
 		uint64_t mask = o->category;
-		struct opt_group *og;
+		const struct opt_group *og;
 
 		while ((og = opt_group_from_mask(&mask)) != NULL) {
 			GtkWidget *vbox = gjv->vboxes[ffz64(~og->mask)];
@@ -1177,14 +1178,15 @@ static GtkWidget *gopt_add_tab(GtkWidget *notebook, const char *name)
 	return vbox;
 }
 
-static GtkWidget *gopt_add_group_tab(GtkWidget *notebook, struct opt_group *og)
+static GtkWidget *gopt_add_group_tab(GtkWidget *notebook,
+				     const struct opt_group *og)
 {
 	return gopt_add_tab(notebook, og->name);
 }
 
 static void gopt_add_group_tabs(GtkWidget *notebook, struct gopt_job_view *gjv)
 {
-	struct opt_group *og;
+	const struct opt_group *og;
 	unsigned int i;
 
 	i = 0;
diff --git a/optgroup.c b/optgroup.c
new file mode 100644
index 0000000..5f9ca96
--- /dev/null
+++ b/optgroup.c
@@ -0,0 +1,166 @@
+#include <stdio.h>
+#include <inttypes.h>
+#include "optgroup.h"
+
+/*
+ * Option grouping
+ */
+static const struct opt_group fio_opt_groups[] = {
+	{
+		.name	= "General",
+		.mask	= FIO_OPT_C_GENERAL,
+	},
+	{
+		.name	= "I/O",
+		.mask	= FIO_OPT_C_IO,
+	},
+	{
+		.name	= "File",
+		.mask	= FIO_OPT_C_FILE,
+	},
+	{
+		.name	= "Statistics",
+		.mask	= FIO_OPT_C_STAT,
+	},
+	{
+		.name	= "Logging",
+		.mask	= FIO_OPT_C_LOG,
+	},
+	{
+		.name	= "Profiles",
+		.mask	= FIO_OPT_C_PROFILE,
+	},
+	{
+		.name	= NULL,
+	},
+};
+
+static const struct opt_group fio_opt_cat_groups[] = {
+	{
+		.name	= "Latency profiling",
+		.mask	= FIO_OPT_G_LATPROF,
+	},
+	{
+		.name	= "Rate",
+		.mask	= FIO_OPT_G_RATE,
+	},
+	{
+		.name	= "Zone",
+		.mask	= FIO_OPT_G_ZONE,
+	},
+	{
+		.name	= "Read/write mix",
+		.mask	= FIO_OPT_G_RWMIX,
+	},
+	{
+		.name	= "Verify",
+		.mask	= FIO_OPT_G_VERIFY,
+	},
+	{
+		.name	= "Trim",
+		.mask	= FIO_OPT_G_TRIM,
+	},
+	{
+		.name	= "I/O Logging",
+		.mask	= FIO_OPT_G_IOLOG,
+	},
+	{
+		.name	= "I/O Depth",
+		.mask	= FIO_OPT_G_IO_DEPTH,
+	},
+	{
+		.name	= "I/O Flow",
+		.mask	= FIO_OPT_G_IO_FLOW,
+	},
+	{
+		.name	= "Description",
+		.mask	= FIO_OPT_G_DESC,
+	},
+	{
+		.name	= "Filename",
+		.mask	= FIO_OPT_G_FILENAME,
+	},
+	{
+		.name	= "General I/O",
+		.mask	= FIO_OPT_G_IO_BASIC,
+	},
+	{
+		.name	= "Cgroups",
+		.mask	= FIO_OPT_G_CGROUP,
+	},
+	{
+		.name	= "Runtime",
+		.mask	= FIO_OPT_G_RUNTIME,
+	},
+	{
+		.name	= "Process",
+		.mask	= FIO_OPT_G_PROCESS,
+	},
+	{
+		.name	= "Job credentials / priority",
+		.mask	= FIO_OPT_G_CRED,
+	},
+	{
+		.name	= "Clock settings",
+		.mask	= FIO_OPT_G_CLOCK,
+	},
+	{
+		.name	= "I/O Type",
+		.mask	= FIO_OPT_G_IO_TYPE,
+	},
+	{
+		.name	= "I/O Thinktime",
+		.mask	= FIO_OPT_G_THINKTIME,
+	},
+	{
+		.name	= "Randomizations",
+		.mask	= FIO_OPT_G_RANDOM,
+	},
+	{
+		.name	= "I/O buffers",
+		.mask	= FIO_OPT_G_IO_BUF,
+	},
+	{
+		.name	= "Tiobench profile",
+		.mask	= FIO_OPT_G_TIOBENCH,
+	},
+	{
+		.name	= "MTD",
+		.mask	= FIO_OPT_G_MTD,
+	},
+
+	{
+		.name	= NULL,
+	}
+};
+
+static const struct opt_group *group_from_mask(const struct opt_group *ogs,
+					       uint64_t *mask,
+					       uint64_t inv_mask)
+{
+	int i;
+
+	if (*mask == inv_mask || !*mask)
+		return NULL;
+
+	for (i = 0; ogs[i].name; i++) {
+		const struct opt_group *og = &ogs[i];
+
+		if (*mask & og->mask) {
+			*mask &= ~(og->mask);
+			return og;
+		}
+	}
+
+	return NULL;
+}
+
+const struct opt_group *opt_group_from_mask(uint64_t *mask)
+{
+	return group_from_mask(fio_opt_groups, mask, FIO_OPT_C_INVALID);
+}
+
+const struct opt_group *opt_group_cat_from_mask(uint64_t *mask)
+{
+	return group_from_mask(fio_opt_cat_groups, mask, FIO_OPT_G_INVALID);
+}
diff --git a/optgroup.h b/optgroup.h
new file mode 100644
index 0000000..815ac16
--- /dev/null
+++ b/optgroup.h
@@ -0,0 +1,102 @@
+#ifndef FIO_OPT_GROUP_H
+#define FIO_OPT_GROUP_H
+
+struct opt_group {
+	const char *name;
+	uint64_t mask;
+};
+
+enum opt_category {
+	__FIO_OPT_C_GENERAL	= 0,
+	__FIO_OPT_C_IO,
+	__FIO_OPT_C_FILE,
+	__FIO_OPT_C_STAT,
+	__FIO_OPT_C_LOG,
+	__FIO_OPT_C_PROFILE,
+	__FIO_OPT_C_ENGINE,
+	__FIO_OPT_C_NR,
+
+	FIO_OPT_C_GENERAL	= (1ULL << __FIO_OPT_C_GENERAL),
+	FIO_OPT_C_IO		= (1ULL << __FIO_OPT_C_IO),
+	FIO_OPT_C_FILE		= (1ULL << __FIO_OPT_C_FILE),
+	FIO_OPT_C_STAT		= (1ULL << __FIO_OPT_C_STAT),
+	FIO_OPT_C_LOG		= (1ULL << __FIO_OPT_C_LOG),
+	FIO_OPT_C_PROFILE	= (1ULL << __FIO_OPT_C_PROFILE),
+	FIO_OPT_C_ENGINE	= (1ULL << __FIO_OPT_C_ENGINE),
+	FIO_OPT_C_INVALID	= (1ULL << __FIO_OPT_C_NR),
+};
+
+enum opt_category_group {
+	__FIO_OPT_G_RATE	= 0,
+	__FIO_OPT_G_ZONE,
+	__FIO_OPT_G_RWMIX,
+	__FIO_OPT_G_VERIFY,
+	__FIO_OPT_G_TRIM,
+	__FIO_OPT_G_IOLOG,
+	__FIO_OPT_G_IO_DEPTH,
+	__FIO_OPT_G_IO_FLOW,
+	__FIO_OPT_G_DESC,
+	__FIO_OPT_G_FILENAME,
+	__FIO_OPT_G_IO_BASIC,
+	__FIO_OPT_G_CGROUP,
+	__FIO_OPT_G_RUNTIME,
+	__FIO_OPT_G_PROCESS,
+	__FIO_OPT_G_CRED,
+	__FIO_OPT_G_CLOCK,
+	__FIO_OPT_G_IO_TYPE,
+	__FIO_OPT_G_THINKTIME,
+	__FIO_OPT_G_RANDOM,
+	__FIO_OPT_G_IO_BUF,
+	__FIO_OPT_G_TIOBENCH,
+	__FIO_OPT_G_ERR,
+	__FIO_OPT_G_E4DEFRAG,
+	__FIO_OPT_G_NETIO,
+	__FIO_OPT_G_RDMA,
+	__FIO_OPT_G_LIBAIO,
+	__FIO_OPT_G_ACT,
+	__FIO_OPT_G_LATPROF,
+        __FIO_OPT_G_RBD,
+        __FIO_OPT_G_GFAPI,
+        __FIO_OPT_G_MTD,
+	__FIO_OPT_G_HDFS,
+	__FIO_OPT_G_NR,
+
+	FIO_OPT_G_RATE		= (1ULL << __FIO_OPT_G_RATE),
+	FIO_OPT_G_ZONE		= (1ULL << __FIO_OPT_G_ZONE),
+	FIO_OPT_G_RWMIX		= (1ULL << __FIO_OPT_G_RWMIX),
+	FIO_OPT_G_VERIFY	= (1ULL << __FIO_OPT_G_VERIFY),
+	FIO_OPT_G_TRIM		= (1ULL << __FIO_OPT_G_TRIM),
+	FIO_OPT_G_IOLOG		= (1ULL << __FIO_OPT_G_IOLOG),
+	FIO_OPT_G_IO_DEPTH	= (1ULL << __FIO_OPT_G_IO_DEPTH),
+	FIO_OPT_G_IO_FLOW	= (1ULL << __FIO_OPT_G_IO_FLOW),
+	FIO_OPT_G_DESC		= (1ULL << __FIO_OPT_G_DESC),
+	FIO_OPT_G_FILENAME	= (1ULL << __FIO_OPT_G_FILENAME),
+	FIO_OPT_G_IO_BASIC	= (1ULL << __FIO_OPT_G_IO_BASIC),
+	FIO_OPT_G_CGROUP	= (1ULL << __FIO_OPT_G_CGROUP),
+	FIO_OPT_G_RUNTIME	= (1ULL << __FIO_OPT_G_RUNTIME),
+	FIO_OPT_G_PROCESS	= (1ULL << __FIO_OPT_G_PROCESS),
+	FIO_OPT_G_CRED		= (1ULL << __FIO_OPT_G_CRED),
+	FIO_OPT_G_CLOCK		= (1ULL << __FIO_OPT_G_CLOCK),
+	FIO_OPT_G_IO_TYPE	= (1ULL << __FIO_OPT_G_IO_TYPE),
+	FIO_OPT_G_THINKTIME	= (1ULL << __FIO_OPT_G_THINKTIME),
+	FIO_OPT_G_RANDOM	= (1ULL << __FIO_OPT_G_RANDOM),
+	FIO_OPT_G_IO_BUF	= (1ULL << __FIO_OPT_G_IO_BUF),
+	FIO_OPT_G_TIOBENCH	= (1ULL << __FIO_OPT_G_TIOBENCH),
+	FIO_OPT_G_ERR		= (1ULL << __FIO_OPT_G_ERR),
+	FIO_OPT_G_E4DEFRAG	= (1ULL << __FIO_OPT_G_E4DEFRAG),
+	FIO_OPT_G_NETIO		= (1ULL << __FIO_OPT_G_NETIO),
+	FIO_OPT_G_RDMA		= (1ULL << __FIO_OPT_G_RDMA),
+	FIO_OPT_G_LIBAIO	= (1ULL << __FIO_OPT_G_LIBAIO),
+	FIO_OPT_G_ACT		= (1ULL << __FIO_OPT_G_ACT),
+	FIO_OPT_G_LATPROF	= (1ULL << __FIO_OPT_G_LATPROF),
+	FIO_OPT_G_RBD		= (1ULL << __FIO_OPT_G_RBD),
+	FIO_OPT_G_GFAPI		= (1ULL << __FIO_OPT_G_GFAPI),
+	FIO_OPT_G_MTD		= (1ULL << __FIO_OPT_G_MTD),
+	FIO_OPT_G_HDFS		= (1ULL << __FIO_OPT_G_HDFS),
+	FIO_OPT_G_INVALID	= (1ULL << __FIO_OPT_G_NR),
+};
+
+extern const struct opt_group *opt_group_from_mask(uint64_t *mask);
+extern const struct opt_group *opt_group_cat_from_mask(uint64_t *mask);
+
+#endif
diff --git a/options.c b/options.c
index 49d6600..871552b 100644
--- a/options.c
+++ b/options.c
@@ -16,19 +16,10 @@
 #include "lib/fls.h"
 #include "lib/pattern.h"
 #include "options.h"
-
-#include "crc/crc32c.h"
+#include "optgroup.h"
 
 char client_sockaddr_str[INET6_ADDRSTRLEN] = { 0 };
 
-struct pattern_fmt_desc fmt_desc[] = {
-	{
-		.fmt   = "%o",
-		.len   = FIELD_SIZE(struct io_u *, offset),
-		.paste = paste_blockoff
-	}
-};
-
 /*
  * Check if mmap/mmaphuge has a :/foo/bar/file at the end. If so, return that.
  */
@@ -963,13 +954,20 @@ static int str_dedupe_cb(void *data, unsigned long long *il)
 
 static int str_verify_pattern_cb(void *data, const char *input)
 {
+	struct pattern_fmt_desc fmt_desc[] = {
+		{
+			.fmt   = "%o",
+			.len   = FIELD_SIZE(struct io_u *, offset),
+			.paste = paste_blockoff
+		}
+	};
 	struct thread_data *td = data;
 	int ret;
 
 	td->o.verify_fmt_sz = ARRAY_SIZE(td->o.verify_fmt);
 	ret = parse_and_fill_pattern(input, strlen(input), td->o.verify_pattern,
-				     MAX_PATTERN_SIZE, fmt_desc, sizeof(fmt_desc),
-				     td->o.verify_fmt, &td->o.verify_fmt_sz);
+			MAX_PATTERN_SIZE, fmt_desc, sizeof(fmt_desc),
+			td->o.verify_fmt, &td->o.verify_fmt_sz);
 	if (ret < 0)
 		return 1;
 
@@ -1043,170 +1041,6 @@ static int gtod_cpu_verify(struct fio_option *o, void *data)
 }
 
 /*
- * Option grouping
- */
-static struct opt_group fio_opt_groups[] = {
-	{
-		.name	= "General",
-		.mask	= FIO_OPT_C_GENERAL,
-	},
-	{
-		.name	= "I/O",
-		.mask	= FIO_OPT_C_IO,
-	},
-	{
-		.name	= "File",
-		.mask	= FIO_OPT_C_FILE,
-	},
-	{
-		.name	= "Statistics",
-		.mask	= FIO_OPT_C_STAT,
-	},
-	{
-		.name	= "Logging",
-		.mask	= FIO_OPT_C_LOG,
-	},
-	{
-		.name	= "Profiles",
-		.mask	= FIO_OPT_C_PROFILE,
-	},
-	{
-		.name	= NULL,
-	},
-};
-
-static struct opt_group *__opt_group_from_mask(struct opt_group *ogs,
-					       uint64_t *mask,
-					       uint64_t inv_mask)
-{
-	struct opt_group *og;
-	int i;
-
-	if (*mask == inv_mask || !*mask)
-		return NULL;
-
-	for (i = 0; ogs[i].name; i++) {
-		og = &ogs[i];
-
-		if (*mask & og->mask) {
-			*mask &= ~(og->mask);
-			return og;
-		}
-	}
-
-	return NULL;
-}
-
-struct opt_group *opt_group_from_mask(uint64_t *mask)
-{
-	return __opt_group_from_mask(fio_opt_groups, mask, FIO_OPT_C_INVALID);
-}
-
-static struct opt_group fio_opt_cat_groups[] = {
-	{
-		.name	= "Latency profiling",
-		.mask	= FIO_OPT_G_LATPROF,
-	},
-	{
-		.name	= "Rate",
-		.mask	= FIO_OPT_G_RATE,
-	},
-	{
-		.name	= "Zone",
-		.mask	= FIO_OPT_G_ZONE,
-	},
-	{
-		.name	= "Read/write mix",
-		.mask	= FIO_OPT_G_RWMIX,
-	},
-	{
-		.name	= "Verify",
-		.mask	= FIO_OPT_G_VERIFY,
-	},
-	{
-		.name	= "Trim",
-		.mask	= FIO_OPT_G_TRIM,
-	},
-	{
-		.name	= "I/O Logging",
-		.mask	= FIO_OPT_G_IOLOG,
-	},
-	{
-		.name	= "I/O Depth",
-		.mask	= FIO_OPT_G_IO_DEPTH,
-	},
-	{
-		.name	= "I/O Flow",
-		.mask	= FIO_OPT_G_IO_FLOW,
-	},
-	{
-		.name	= "Description",
-		.mask	= FIO_OPT_G_DESC,
-	},
-	{
-		.name	= "Filename",
-		.mask	= FIO_OPT_G_FILENAME,
-	},
-	{
-		.name	= "General I/O",
-		.mask	= FIO_OPT_G_IO_BASIC,
-	},
-	{
-		.name	= "Cgroups",
-		.mask	= FIO_OPT_G_CGROUP,
-	},
-	{
-		.name	= "Runtime",
-		.mask	= FIO_OPT_G_RUNTIME,
-	},
-	{
-		.name	= "Process",
-		.mask	= FIO_OPT_G_PROCESS,
-	},
-	{
-		.name	= "Job credentials / priority",
-		.mask	= FIO_OPT_G_CRED,
-	},
-	{
-		.name	= "Clock settings",
-		.mask	= FIO_OPT_G_CLOCK,
-	},
-	{
-		.name	= "I/O Type",
-		.mask	= FIO_OPT_G_IO_TYPE,
-	},
-	{
-		.name	= "I/O Thinktime",
-		.mask	= FIO_OPT_G_THINKTIME,
-	},
-	{
-		.name	= "Randomizations",
-		.mask	= FIO_OPT_G_RANDOM,
-	},
-	{
-		.name	= "I/O buffers",
-		.mask	= FIO_OPT_G_IO_BUF,
-	},
-	{
-		.name	= "Tiobench profile",
-		.mask	= FIO_OPT_G_TIOBENCH,
-	},
-	{
-		.name	= "MTD",
-		.mask	= FIO_OPT_G_MTD,
-	},
-
-	{
-		.name	= NULL,
-	}
-};
-
-struct opt_group *opt_group_cat_from_mask(uint64_t *mask)
-{
-	return __opt_group_from_mask(fio_opt_cat_groups, mask, FIO_OPT_G_INVALID);
-}
-
-/*
  * Map of job/command line options
  */
 struct fio_option fio_options[FIO_MAX_OPTS] = {
diff --git a/options.h b/options.h
index 13b534a..6a5db07 100644
--- a/options.h
+++ b/options.h
@@ -59,103 +59,6 @@ static inline struct fio_option *find_option(struct fio_option *options,
 	return NULL;
 }
 
-struct opt_group {
-	const char *name;
-	uint64_t mask;
-};
-
-enum opt_category {
-	__FIO_OPT_C_GENERAL	= 0,
-	__FIO_OPT_C_IO,
-	__FIO_OPT_C_FILE,
-	__FIO_OPT_C_STAT,
-	__FIO_OPT_C_LOG,
-	__FIO_OPT_C_PROFILE,
-	__FIO_OPT_C_ENGINE,
-	__FIO_OPT_C_NR,
-
-	FIO_OPT_C_GENERAL	= (1ULL << __FIO_OPT_C_GENERAL),
-	FIO_OPT_C_IO		= (1ULL << __FIO_OPT_C_IO),
-	FIO_OPT_C_FILE		= (1ULL << __FIO_OPT_C_FILE),
-	FIO_OPT_C_STAT		= (1ULL << __FIO_OPT_C_STAT),
-	FIO_OPT_C_LOG		= (1ULL << __FIO_OPT_C_LOG),
-	FIO_OPT_C_PROFILE	= (1ULL << __FIO_OPT_C_PROFILE),
-	FIO_OPT_C_ENGINE	= (1ULL << __FIO_OPT_C_ENGINE),
-	FIO_OPT_C_INVALID	= (1ULL << __FIO_OPT_C_NR),
-};
-
-enum opt_category_group {
-	__FIO_OPT_G_RATE	= 0,
-	__FIO_OPT_G_ZONE,
-	__FIO_OPT_G_RWMIX,
-	__FIO_OPT_G_VERIFY,
-	__FIO_OPT_G_TRIM,
-	__FIO_OPT_G_IOLOG,
-	__FIO_OPT_G_IO_DEPTH,
-	__FIO_OPT_G_IO_FLOW,
-	__FIO_OPT_G_DESC,
-	__FIO_OPT_G_FILENAME,
-	__FIO_OPT_G_IO_BASIC,
-	__FIO_OPT_G_CGROUP,
-	__FIO_OPT_G_RUNTIME,
-	__FIO_OPT_G_PROCESS,
-	__FIO_OPT_G_CRED,
-	__FIO_OPT_G_CLOCK,
-	__FIO_OPT_G_IO_TYPE,
-	__FIO_OPT_G_THINKTIME,
-	__FIO_OPT_G_RANDOM,
-	__FIO_OPT_G_IO_BUF,
-	__FIO_OPT_G_TIOBENCH,
-	__FIO_OPT_G_ERR,
-	__FIO_OPT_G_E4DEFRAG,
-	__FIO_OPT_G_NETIO,
-	__FIO_OPT_G_RDMA,
-	__FIO_OPT_G_LIBAIO,
-	__FIO_OPT_G_ACT,
-	__FIO_OPT_G_LATPROF,
-        __FIO_OPT_G_RBD,
-        __FIO_OPT_G_GFAPI,
-        __FIO_OPT_G_MTD,
-	__FIO_OPT_G_HDFS,
-	__FIO_OPT_G_NR,
-
-	FIO_OPT_G_RATE		= (1ULL << __FIO_OPT_G_RATE),
-	FIO_OPT_G_ZONE		= (1ULL << __FIO_OPT_G_ZONE),
-	FIO_OPT_G_RWMIX		= (1ULL << __FIO_OPT_G_RWMIX),
-	FIO_OPT_G_VERIFY	= (1ULL << __FIO_OPT_G_VERIFY),
-	FIO_OPT_G_TRIM		= (1ULL << __FIO_OPT_G_TRIM),
-	FIO_OPT_G_IOLOG		= (1ULL << __FIO_OPT_G_IOLOG),
-	FIO_OPT_G_IO_DEPTH	= (1ULL << __FIO_OPT_G_IO_DEPTH),
-	FIO_OPT_G_IO_FLOW	= (1ULL << __FIO_OPT_G_IO_FLOW),
-	FIO_OPT_G_DESC		= (1ULL << __FIO_OPT_G_DESC),
-	FIO_OPT_G_FILENAME	= (1ULL << __FIO_OPT_G_FILENAME),
-	FIO_OPT_G_IO_BASIC	= (1ULL << __FIO_OPT_G_IO_BASIC),
-	FIO_OPT_G_CGROUP	= (1ULL << __FIO_OPT_G_CGROUP),
-	FIO_OPT_G_RUNTIME	= (1ULL << __FIO_OPT_G_RUNTIME),
-	FIO_OPT_G_PROCESS	= (1ULL << __FIO_OPT_G_PROCESS),
-	FIO_OPT_G_CRED		= (1ULL << __FIO_OPT_G_CRED),
-	FIO_OPT_G_CLOCK		= (1ULL << __FIO_OPT_G_CLOCK),
-	FIO_OPT_G_IO_TYPE	= (1ULL << __FIO_OPT_G_IO_TYPE),
-	FIO_OPT_G_THINKTIME	= (1ULL << __FIO_OPT_G_THINKTIME),
-	FIO_OPT_G_RANDOM	= (1ULL << __FIO_OPT_G_RANDOM),
-	FIO_OPT_G_IO_BUF	= (1ULL << __FIO_OPT_G_IO_BUF),
-	FIO_OPT_G_TIOBENCH	= (1ULL << __FIO_OPT_G_TIOBENCH),
-	FIO_OPT_G_ERR		= (1ULL << __FIO_OPT_G_ERR),
-	FIO_OPT_G_E4DEFRAG	= (1ULL << __FIO_OPT_G_E4DEFRAG),
-	FIO_OPT_G_NETIO		= (1ULL << __FIO_OPT_G_NETIO),
-	FIO_OPT_G_RDMA		= (1ULL << __FIO_OPT_G_RDMA),
-	FIO_OPT_G_LIBAIO	= (1ULL << __FIO_OPT_G_LIBAIO),
-	FIO_OPT_G_ACT		= (1ULL << __FIO_OPT_G_ACT),
-	FIO_OPT_G_LATPROF	= (1ULL << __FIO_OPT_G_LATPROF),
-	FIO_OPT_G_RBD		= (1ULL << __FIO_OPT_G_RBD),
-	FIO_OPT_G_GFAPI		= (1ULL << __FIO_OPT_G_GFAPI),
-	FIO_OPT_G_MTD		= (1ULL << __FIO_OPT_G_MTD),
-	FIO_OPT_G_HDFS		= (1ULL << __FIO_OPT_G_HDFS),
-	FIO_OPT_G_INVALID	= (1ULL << __FIO_OPT_G_NR),
-};
-
-extern struct opt_group *opt_group_from_mask(uint64_t *mask);
-extern struct opt_group *opt_group_cat_from_mask(uint64_t *mask);
 extern struct fio_option *fio_option_find(const char *name);
 extern unsigned int fio_get_kb_base(void *);
 
diff --git a/parse.c b/parse.c
index ac1bee9..ec0f870 100644
--- a/parse.c
+++ b/parse.c
@@ -15,6 +15,7 @@
 #include "parse.h"
 #include "debug.h"
 #include "options.h"
+#include "optgroup.h"
 #include "minmax.h"
 #include "lib/ieee754.h"
 #include "lib/pow2.h"
diff --git a/profiles/act.c b/profiles/act.c
index 4d2ec5c..3e9238b 100644
--- a/profiles/act.c
+++ b/profiles/act.c
@@ -1,6 +1,7 @@
 #include "../fio.h"
 #include "../profile.h"
 #include "../parse.h"
+#include "../optgroup.h"
 
 /*
  * 1x loads
diff --git a/profiles/tiobench.c b/profiles/tiobench.c
index b4331d7..8af6f4e 100644
--- a/profiles/tiobench.c
+++ b/profiles/tiobench.c
@@ -1,6 +1,7 @@
 #include "../fio.h"
 #include "../profile.h"
 #include "../parse.h"
+#include "../optgroup.h"
 
 static unsigned long long size;
 static unsigned int loops = 1;

             reply	other threads:[~2015-12-31 13:00 UTC|newest]

Thread overview: 1466+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-31 13:00 Jens Axboe [this message]
  -- strict thread matches above, loose matches on Subject: below --
2017-03-17 12:00 Recent changes (master) Jens Axboe
2017-03-18 12:00 Jens Axboe
2017-03-20 12:00 Jens Axboe
2017-03-22 12:00 Jens Axboe
2017-03-29 12:00 Jens Axboe
2017-04-03 12:00 Jens Axboe
2017-04-04 12:00 Jens Axboe
2017-04-05 12:00 Jens Axboe
2017-04-08 12:00 Jens Axboe
2017-04-09 12:00 Jens Axboe
2017-04-11 12:00 Jens Axboe
2017-04-20 12:00 Jens Axboe
2017-04-26 12:00 Jens Axboe
2017-04-27 12:00 Jens Axboe
2017-05-01 12:00 Jens Axboe
2017-05-02 12:00 Jens Axboe
2017-05-04 12:00 Jens Axboe
2017-05-05 12:00 Jens Axboe
2017-05-10 12:00 Jens Axboe
2017-05-19 12:00 Jens Axboe
2017-05-20 12:00 Jens Axboe
2017-05-23 12:00 Jens Axboe
2017-05-24 12:00 Jens Axboe
2017-05-25 12:00 Jens Axboe
2017-05-27 12:00 Jens Axboe
2017-06-03 12:00 Jens Axboe
2017-06-06 12:00 Jens Axboe
2017-06-08 12:00 Jens Axboe
2017-06-09 12:00 Jens Axboe
2017-06-13 12:00 Jens Axboe
2017-06-15 12:00 Jens Axboe
2017-06-16 12:00 Jens Axboe
2017-06-19 12:00 Jens Axboe
2017-06-20 12:00 Jens Axboe
2017-06-23 12:00 Jens Axboe
2017-06-24 12:00 Jens Axboe
2017-06-26 12:00 Jens Axboe
2017-06-27 12:00 Jens Axboe
2017-06-28 12:00 Jens Axboe
2017-06-29 12:00 Jens Axboe
2017-07-03 12:00 Jens Axboe
2017-07-04 12:00 Jens Axboe
2017-07-05 12:00 Jens Axboe
2017-07-07 12:00 Jens Axboe
2017-07-08 12:00 Jens Axboe
2017-07-11 12:00 Jens Axboe
2017-07-13 12:00 Jens Axboe
2017-07-14 12:00 Jens Axboe
2017-07-15 12:00 Jens Axboe
2017-07-17 12:00 Jens Axboe
2017-07-21 12:00 Jens Axboe
2017-07-26 12:00 Jens Axboe
2017-07-28 12:00 Jens Axboe
2017-08-01 12:00 Jens Axboe
2017-08-02 12:00 Jens Axboe
2017-08-08 12:00 Jens Axboe
2017-08-09 12:00 Jens Axboe
2017-08-10 12:00 Jens Axboe
2017-08-15 12:00 Jens Axboe
2017-08-17 12:00 Jens Axboe
2017-08-18 12:00 Jens Axboe
2017-08-23 12:00 Jens Axboe
2017-08-24 12:00 Jens Axboe
2017-08-28 12:00 Jens Axboe
2017-08-29 12:00 Jens Axboe
2017-08-30 12:00 Jens Axboe
2017-08-31 12:00 Jens Axboe
2017-09-01 12:00 Jens Axboe
2017-09-02 12:00 Jens Axboe
2017-09-03 12:00 Jens Axboe
2017-09-06 12:00 Jens Axboe
2017-09-12 12:00 Jens Axboe
2017-09-13 12:00 Jens Axboe
2017-09-14 12:00 Jens Axboe
2017-09-15 12:00 Jens Axboe
2017-09-19 12:00 Jens Axboe
2017-09-21 12:00 Jens Axboe
2017-09-27 12:00 Jens Axboe
2017-09-28 12:00 Jens Axboe
2017-09-29 12:00 Jens Axboe
2017-10-04 12:00 Jens Axboe
2017-10-07 12:00 Jens Axboe
2017-10-10 12:00 Jens Axboe
2017-10-11 12:00 Jens Axboe
2017-10-12 12:00 Jens Axboe
2017-10-13 12:00 Jens Axboe
2017-10-18 12:00 Jens Axboe
2017-10-21 12:00 Jens Axboe
2017-10-26 12:00 Jens Axboe
2017-10-27 12:00 Jens Axboe
2017-10-31 12:00 Jens Axboe
2017-11-01 12:00 Jens Axboe
2017-11-02 12:00 Jens Axboe
2017-11-03 12:00 Jens Axboe
2017-11-04 12:00 Jens Axboe
2017-11-07 13:00 Jens Axboe
2017-11-16 13:00 Jens Axboe
2017-11-17 13:00 Jens Axboe
2017-11-18 13:00 Jens Axboe
2017-11-20 15:00 ` Elliott, Robert (Persistent Memory)
2017-11-23 13:00 Jens Axboe
2017-11-24 13:00 Jens Axboe
2017-11-29 13:00 Jens Axboe
2017-11-30 13:00 Jens Axboe
2017-12-01 13:00 Jens Axboe
2017-12-02 13:00 Jens Axboe
2017-12-03 13:00 Jens Axboe
2017-12-04 13:00 Jens Axboe
2017-12-07 13:00 Jens Axboe
2017-12-08 13:00 Jens Axboe
2017-12-09 13:00 Jens Axboe
2017-12-14 13:00 Jens Axboe
2017-12-15 13:00 Jens Axboe
2017-12-16 13:00 Jens Axboe
2017-12-20 13:00 Jens Axboe
2017-12-22 13:00 Jens Axboe
2017-12-28 13:00 Jens Axboe
2017-12-29 13:00 Jens Axboe
2017-12-30 13:00 Jens Axboe
2018-01-03 13:00 Jens Axboe
2018-01-06 13:00 Jens Axboe
2018-01-07 13:00 Jens Axboe
2018-01-11 13:00 Jens Axboe
2018-01-13 13:00 Jens Axboe
2018-01-17 13:00 Jens Axboe
2018-01-25 13:00 Jens Axboe
2018-01-26 13:00 Jens Axboe
2018-02-08 13:00 Jens Axboe
2018-02-09 13:00 Jens Axboe
2018-02-11 13:00 Jens Axboe
2018-02-13 13:00 Jens Axboe
2018-02-15 13:00 Jens Axboe
2018-02-21 13:00 Jens Axboe
2018-02-27 13:00 Jens Axboe
2018-02-28 13:00 Jens Axboe
2018-03-01 13:00 Jens Axboe
2018-03-02 13:00 Jens Axboe
2018-03-03 13:00 Jens Axboe
2018-03-06 13:00 Jens Axboe
2018-03-07 13:00 Jens Axboe
2018-03-08 13:00 Jens Axboe
2018-03-10 13:00 Jens Axboe
2018-03-13 12:00 Jens Axboe
2018-03-14 12:00 Jens Axboe
2018-03-20 12:00 Jens Axboe
2018-03-21 12:00 Jens Axboe
2018-03-22 12:00 Jens Axboe
2018-03-23 12:00 Jens Axboe
2018-03-24 12:00 Jens Axboe
2018-03-30 12:00 Jens Axboe
2018-03-31 12:00 Jens Axboe
2018-04-04 12:00 Jens Axboe
2018-04-05 12:00 Jens Axboe
2018-04-07 12:00 Jens Axboe
2018-04-09 12:00 Jens Axboe
2018-04-10 12:00 Jens Axboe
2018-04-11 12:00 Jens Axboe
2018-04-14 12:00 Jens Axboe
2018-04-15 12:00 Jens Axboe
2018-04-17 12:00 Jens Axboe
2018-04-18 12:00 Jens Axboe
2018-04-19 12:00 Jens Axboe
2018-04-21 12:00 Jens Axboe
2018-04-25 12:00 Jens Axboe
2018-04-27 12:00 Jens Axboe
2018-05-15 12:00 Jens Axboe
2018-05-17 12:00 Jens Axboe
2018-05-19 12:00 Jens Axboe
2018-05-26 12:00 Jens Axboe
2018-06-01 12:00 Jens Axboe
2018-06-02 12:00 Jens Axboe
2018-06-05 12:00 Jens Axboe
2018-06-06 12:00 Jens Axboe
2018-06-08 12:00 Jens Axboe
2018-06-09 12:00 Jens Axboe
2018-06-12 12:00 Jens Axboe
2018-06-13 12:00 Jens Axboe
2018-06-16 12:00 Jens Axboe
2018-06-19 12:00 Jens Axboe
2018-06-22 12:00 Jens Axboe
2018-06-30 12:00 Jens Axboe
2018-07-05 12:00 Jens Axboe
2018-07-11 12:00 Jens Axboe
2018-07-12 12:00 Jens Axboe
2018-07-13 12:00 Jens Axboe
2018-07-24 12:00 Jens Axboe
2018-07-25 12:00 Jens Axboe
2018-07-26 12:00 Jens Axboe
2018-07-27 12:00 Jens Axboe
2018-07-31 12:00 Jens Axboe
2018-08-03 12:00 Jens Axboe
2018-08-04 12:00 Jens Axboe
2018-08-06 12:00 Jens Axboe
2018-08-08 12:00 Jens Axboe
2018-08-10 12:00 Jens Axboe
2018-08-11 12:00 Jens Axboe
2018-08-13 12:00 Jens Axboe
2018-08-14 12:00 Jens Axboe
2018-08-15 12:00 Jens Axboe
2018-08-16 12:00 Jens Axboe
2018-08-17 12:00 Jens Axboe
2018-08-18 12:00 Jens Axboe
2018-08-21 12:00 Jens Axboe
2018-08-22 12:00 Jens Axboe
2018-08-23 12:00 Jens Axboe
2018-08-24 12:00 Jens Axboe
2018-08-25 12:00 Jens Axboe
2018-08-26 12:00 Jens Axboe
2018-08-31 12:00 Jens Axboe
2018-09-01 12:00 Jens Axboe
2018-09-04 12:00 Jens Axboe
2018-09-06 12:00 Jens Axboe
2018-09-07 12:00 Jens Axboe
2018-09-08 12:00 Jens Axboe
2018-09-09 12:00 Jens Axboe
2018-09-10 12:00 Jens Axboe
2018-09-11 12:00 Jens Axboe
2018-09-12 12:00 Jens Axboe
2018-09-13 12:00 Jens Axboe
2018-09-17 12:00 Jens Axboe
2018-09-18 12:00 Jens Axboe
2018-09-20 12:00 Jens Axboe
2018-09-21 12:00 Jens Axboe
2018-09-22 12:00 Jens Axboe
2018-09-23 12:00 Jens Axboe
2018-09-26 12:00 Jens Axboe
2018-09-27 12:00 Jens Axboe
2018-09-28 12:00 Jens Axboe
2018-09-30 12:00 Jens Axboe
2018-10-01 12:00 Jens Axboe
2018-10-02 12:00 Jens Axboe
2018-10-04 12:00 Jens Axboe
2018-10-05 12:00 Jens Axboe
2018-10-06 12:00 Jens Axboe
2018-10-09 12:00 Jens Axboe
2018-10-16 12:00 Jens Axboe
2018-10-19 12:00 Jens Axboe
2018-10-20 12:00 Jens Axboe
2018-10-24 12:00 Jens Axboe
2018-10-27 12:00 Jens Axboe
2018-11-03 12:00 Jens Axboe
2018-11-07 13:00 Jens Axboe
2018-11-16 13:00 Jens Axboe
2018-11-20 13:00 Jens Axboe
2018-11-21 13:00 Jens Axboe
2018-11-22 13:00 Jens Axboe
2018-11-25 13:00 Jens Axboe
2018-11-26 13:00 Jens Axboe
2018-11-27 13:00 Jens Axboe
2018-11-28 13:00 Jens Axboe
2018-11-30 13:00 Jens Axboe
2018-12-01 13:00 Jens Axboe
2018-12-02 13:00 Jens Axboe
2018-12-05 13:00 Jens Axboe
2018-12-11 13:00 Jens Axboe
2018-12-13 13:00 Jens Axboe
2018-12-14 13:00 Jens Axboe
2018-12-15 13:00 Jens Axboe
2018-12-20 13:00 Jens Axboe
2018-12-22 13:00 Jens Axboe
2018-12-31 13:00 Jens Axboe
2019-01-05 13:00 Jens Axboe
2019-01-06 13:00 Jens Axboe
2019-01-08 13:00 Jens Axboe
2019-01-09 13:00 Jens Axboe
2019-01-10 13:00 Jens Axboe
2019-01-11 13:00 Jens Axboe
2019-01-12 13:00 Jens Axboe
2019-01-13 13:00 Jens Axboe
2019-01-14 13:00 Jens Axboe
2019-01-15 13:00 Jens Axboe
2019-01-16 13:00 Jens Axboe
2019-01-17 13:00 Jens Axboe
2019-01-24 13:00 Jens Axboe
2019-01-25 13:00 Jens Axboe
2019-01-29 13:00 Jens Axboe
2019-01-30 13:00 Jens Axboe
2019-02-01 13:00 Jens Axboe
2019-02-05 13:00 Jens Axboe
2019-02-08 13:00 Jens Axboe
2019-02-09 13:00 Jens Axboe
2019-02-11 13:00 Jens Axboe
2019-02-12 13:00 Jens Axboe
2019-02-22 13:00 Jens Axboe
2019-02-24 13:00 Jens Axboe
2019-02-25 13:00 Jens Axboe
2019-03-01 13:00 Jens Axboe
2019-03-07 13:00 Jens Axboe
2019-03-08 13:00 Jens Axboe
2019-03-09 13:00 Jens Axboe
2019-03-12 12:00 Jens Axboe
2019-03-22 12:00 Jens Axboe
2019-03-26 12:00 Jens Axboe
2019-04-02 12:00 Jens Axboe
2019-04-18 12:00 Jens Axboe
2019-04-19 12:00 Jens Axboe
2019-04-20 12:00 Jens Axboe
2019-04-23 12:00 Jens Axboe
2019-04-26 12:00 Jens Axboe
2019-05-07 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-10 12:00 Jens Axboe
2019-05-17 12:00 Jens Axboe
2019-05-21 12:00 Jens Axboe
2019-05-23 12:00 Jens Axboe
2019-05-24 12:00 Jens Axboe
2019-06-01 12:00 Jens Axboe
2019-07-02 12:00 Jens Axboe
2019-07-10 12:00 Jens Axboe
2019-07-13 12:00 Jens Axboe
2019-07-27 12:00 Jens Axboe
2019-08-01 12:00 Jens Axboe
2019-08-03 12:00 Jens Axboe
2019-08-04 12:00 Jens Axboe
2019-08-06 12:00 Jens Axboe
2019-08-09 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-16 12:00 Jens Axboe
2019-08-29 12:00 Jens Axboe
2019-08-30 12:00 Jens Axboe
2019-09-04 12:00 Jens Axboe
2019-09-06 12:00 Jens Axboe
2019-09-13 12:00 Jens Axboe
2019-09-14 12:00 Jens Axboe
2019-09-20 12:00 Jens Axboe
2019-09-24 12:00 Jens Axboe
2019-09-25 12:00 Jens Axboe
2019-09-26 12:00 Jens Axboe
2019-09-28 12:00 Jens Axboe
2019-10-02 12:00 Jens Axboe
2019-10-03 12:00 Jens Axboe
2019-10-07 12:00 Jens Axboe
2019-10-08 12:00 Jens Axboe
2019-10-09 12:00 Jens Axboe
2019-10-14 12:00 Jens Axboe
2019-10-15 12:00 Jens Axboe
2019-10-16 12:00 Jens Axboe
2019-10-22 12:00 Jens Axboe
2019-10-25 12:00 Jens Axboe
2019-10-30 12:00 Jens Axboe
2019-11-03 13:00 Jens Axboe
2019-11-04 13:00 Jens Axboe
2019-11-06 13:00 Jens Axboe
2019-11-07 13:00 Jens Axboe
2019-11-07 15:25 Jens Axboe
2019-11-15 13:00 Jens Axboe
2019-11-26 13:00 Jens Axboe
2019-11-27 13:00 Jens Axboe
2019-11-28 13:00 Jens Axboe
2019-12-07 13:00 Jens Axboe
2019-12-12 13:00 Jens Axboe
2019-12-17 13:00 Jens Axboe
2019-12-19 13:00 Jens Axboe
2019-12-22 13:00 Jens Axboe
2019-12-24 13:00 Jens Axboe
2019-12-26 13:00 Jens Axboe
2020-01-04 13:00 Jens Axboe
2020-01-05 13:00 Jens Axboe
2020-01-06 13:00 Jens Axboe
2020-01-07 13:00 Jens Axboe
2020-01-10 13:00 Jens Axboe
2020-01-14 13:00 Jens Axboe
2020-01-15 13:00 Jens Axboe
2020-01-17 13:00 Jens Axboe
2020-01-19 13:00 Jens Axboe
2020-01-23 13:00 Jens Axboe
2020-01-24 13:00 Jens Axboe
2020-01-29 13:00 Jens Axboe
2020-02-05 13:00 Jens Axboe
2020-02-06 13:00 Jens Axboe
2020-02-07 13:00 Jens Axboe
2020-02-25 13:00 Jens Axboe
2020-02-27 13:00 Jens Axboe
2020-03-02 13:00 Jens Axboe
2020-03-03 13:00 Jens Axboe
2020-03-04 13:00 Jens Axboe
2020-03-13 12:00 Jens Axboe
2020-03-16 12:00 Jens Axboe
2020-03-17 12:00 Jens Axboe
2020-03-18 12:00 Jens Axboe
2020-03-27 12:00 Jens Axboe
2020-04-01 12:00 Jens Axboe
2020-04-03 12:00 Jens Axboe
2020-04-07 12:00 Jens Axboe
2020-04-08 12:00 Jens Axboe
2020-04-09 12:00 Jens Axboe
2020-04-14 12:00 Jens Axboe
2020-04-16 12:00 Jens Axboe
2020-04-17 12:00 Jens Axboe
2020-04-18 12:00 Jens Axboe
2020-04-21 12:00 Jens Axboe
2020-04-22 12:00 Jens Axboe
2020-04-30 12:00 Jens Axboe
2020-05-12 12:00 Jens Axboe
2020-05-14 12:00 Jens Axboe
2020-05-15 12:00 Jens Axboe
2020-05-19 12:00 Jens Axboe
2020-05-20 12:00 Jens Axboe
2020-05-21 12:00 Jens Axboe
2020-05-22 12:00 Jens Axboe
2020-05-24 12:00 Jens Axboe
2020-05-25 12:00 Jens Axboe
2020-05-26 12:00 Jens Axboe
2020-05-29 12:00 Jens Axboe
2020-05-30 12:00 Jens Axboe
2020-06-03 12:00 Jens Axboe
2020-06-04 12:00 Jens Axboe
2020-06-06 12:00 Jens Axboe
2020-06-08 12:00 Jens Axboe
2020-06-10 12:00 Jens Axboe
2020-06-13 12:00 Jens Axboe
2020-06-22 12:00 Jens Axboe
2020-06-24 12:00 Jens Axboe
2020-06-25 12:00 Jens Axboe
2020-06-29 12:00 Jens Axboe
2020-07-03 12:00 Jens Axboe
2020-07-04 12:00 Jens Axboe
2020-07-05 12:00 Jens Axboe
2020-07-09 12:00 Jens Axboe
2020-07-14 12:00 Jens Axboe
2020-07-15 12:00 Jens Axboe
2020-07-18 12:00 Jens Axboe
2020-07-19 12:00 Jens Axboe
2020-07-21 12:00 Jens Axboe
2020-07-22 12:00 Jens Axboe
2020-07-25 12:00 Jens Axboe
2020-07-26 12:00 Jens Axboe
2020-07-27 12:00 Jens Axboe
2020-07-28 12:00 Jens Axboe
2020-08-02 12:00 Jens Axboe
2020-08-08 12:00 Jens Axboe
2020-08-11 12:00 Jens Axboe
2020-08-12 12:00 Jens Axboe
2020-08-13 12:00 Jens Axboe
2020-08-14 12:00 Jens Axboe
2020-08-15 12:00 Jens Axboe
2020-08-17 12:00 Jens Axboe
2020-08-18 12:00 Jens Axboe
2020-08-19 12:00 Jens Axboe
2020-08-20 12:00 Jens Axboe
2020-08-22 12:00 Jens Axboe
2020-08-23 12:00 Jens Axboe
2020-08-28 12:00 Jens Axboe
2020-08-29 12:00 Jens Axboe
2020-08-30 12:00 Jens Axboe
2020-09-01 12:00 Jens Axboe
2020-09-02 12:00 Jens Axboe
2020-09-04 12:00 Jens Axboe
2020-09-06 12:00 Jens Axboe
2020-09-07 12:00 Jens Axboe
2020-09-08 12:00 Jens Axboe
2020-09-09 12:00 Jens Axboe
2020-09-10 12:00 Jens Axboe
2020-09-12 12:00 Jens Axboe
2020-09-15 12:00 Jens Axboe
2020-10-10 12:00 Jens Axboe
2020-10-11 12:00 Jens Axboe
2020-10-14 12:00 Jens Axboe
2020-10-15 12:00 Jens Axboe
2020-10-29 12:00 Jens Axboe
2020-10-31 12:00 Jens Axboe
2020-11-02 13:00 Jens Axboe
2020-11-05 13:00 Jens Axboe
2020-11-06 13:00 Jens Axboe
2020-11-12 20:51 ` Rebecca Cran
2020-11-10 13:00 Jens Axboe
2020-11-13 13:00 Jens Axboe
2020-11-14 13:00 Jens Axboe
2020-11-23 13:00 Jens Axboe
2020-11-26 13:00 Jens Axboe
2020-11-28 13:00 Jens Axboe
2020-12-04 13:00 Jens Axboe
2020-12-05 13:00 Jens Axboe
2020-12-06 13:00 Jens Axboe
2020-12-08 13:00 Jens Axboe
2020-12-16 13:00 Jens Axboe
2020-12-18 13:00 Jens Axboe
2020-12-25 13:00 Jens Axboe
2020-12-30 13:00 Jens Axboe
2021-01-06 13:00 Jens Axboe
2021-01-07 13:00 Jens Axboe
2021-01-08 13:00 Jens Axboe
2021-01-10 13:00 Jens Axboe
2021-01-13 13:00 Jens Axboe
2021-01-16 13:00 Jens Axboe
2021-01-17 13:00 Jens Axboe
2021-01-24 13:00 Jens Axboe
2021-01-26 13:00 Jens Axboe
2021-01-27 13:00 Jens Axboe
2021-01-28 13:00 Jens Axboe
2021-01-30 13:00 Jens Axboe
2021-02-11 13:00 Jens Axboe
2021-02-15 13:00 Jens Axboe
2021-02-17 13:00 Jens Axboe
2021-02-22 13:00 Jens Axboe
2021-03-07 13:00 Jens Axboe
2021-03-09 13:00 Jens Axboe
2021-03-10 13:00 Jens Axboe
2021-03-11 13:00 Jens Axboe
2021-03-12 13:00 Jens Axboe
2021-03-18 12:00 Jens Axboe
2021-03-19 12:00 Jens Axboe
2021-03-31 12:00 Jens Axboe
2021-04-11 12:00 Jens Axboe
2021-04-13 12:00 Jens Axboe
2021-04-14 12:00 Jens Axboe
2021-04-16 12:00 Jens Axboe
2021-04-17 12:00 Jens Axboe
2021-04-23 12:00 Jens Axboe
2021-04-24 12:00 Jens Axboe
2021-04-26 12:00 Jens Axboe
2021-04-28 12:00 Jens Axboe
2021-05-07 12:00 Jens Axboe
2021-05-09 12:00 Jens Axboe
2021-05-11 12:00 Jens Axboe
2021-05-12 12:00 Jens Axboe
2021-05-15 12:00 Jens Axboe
2021-05-19 12:00 Jens Axboe
2021-05-26 12:00 Jens Axboe
2021-05-27 12:00 Jens Axboe
2021-05-28 12:00 Jens Axboe
2021-06-04 12:00 Jens Axboe
2021-06-09 12:00 Jens Axboe
2021-06-11 12:00 Jens Axboe
2021-06-15 12:00 Jens Axboe
2021-06-18 12:00 Jens Axboe
2021-06-21 12:00 Jens Axboe
2021-06-30 12:00 Jens Axboe
2021-07-02 12:00 Jens Axboe
2021-07-08 12:00 Jens Axboe
2021-07-16 12:00 Jens Axboe
2021-07-26 12:00 Jens Axboe
2021-07-29 12:00 Jens Axboe
2021-08-02 12:00 Jens Axboe
2021-08-03 12:00 Jens Axboe
2021-08-04 12:00 Jens Axboe
2021-08-05 12:00 Jens Axboe
2021-08-07 12:00 Jens Axboe
2021-08-12 12:00 Jens Axboe
2021-08-14 12:00 Jens Axboe
2021-08-19 12:00 Jens Axboe
2021-08-21 12:00 Jens Axboe
2021-08-27 12:00 Jens Axboe
2021-08-28 12:00 Jens Axboe
2021-08-29 12:00 Jens Axboe
2021-09-03 12:00 Jens Axboe
2021-09-04 12:00 Jens Axboe
2021-09-04 12:00 ` Jens Axboe
2021-09-06 12:00 Jens Axboe
2021-09-09 12:00 Jens Axboe
2021-09-14 12:00 Jens Axboe
2021-09-16 12:00 Jens Axboe
2021-09-17 12:00 Jens Axboe
2021-09-21 12:00 Jens Axboe
2021-09-24 12:00 Jens Axboe
2021-09-25 12:00 Jens Axboe
2021-09-26 12:00 Jens Axboe
2021-09-27 12:00 Jens Axboe
2021-09-29 12:00 Jens Axboe
2021-09-30 12:00 Jens Axboe
2021-10-01 12:00 Jens Axboe
2021-10-02 12:00 Jens Axboe
2021-10-05 12:00 Jens Axboe
2021-10-06 12:00 Jens Axboe
2021-10-08 12:00 Jens Axboe
2021-10-10 12:00 Jens Axboe
2021-10-12 12:00 Jens Axboe
2021-10-13 12:00 Jens Axboe
2021-10-14 12:00 Jens Axboe
2021-10-15 12:00 Jens Axboe
2021-10-16 12:00 Jens Axboe
2021-10-18 12:00 Jens Axboe
2021-10-19 12:00 Jens Axboe
2021-10-20 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-26 12:00 Jens Axboe
2021-11-11 13:00 Jens Axboe
2021-11-13 13:00 Jens Axboe
2021-11-18 13:00 Jens Axboe
2021-11-20 13:00 Jens Axboe
2021-11-21 13:00 Jens Axboe
2021-11-22 13:00 Jens Axboe
2021-11-25 13:00 Jens Axboe
2021-11-26 13:00 Jens Axboe
2021-12-03 13:00 Jens Axboe
2021-12-07 13:00 Jens Axboe
2021-12-10 13:00 Jens Axboe
2021-12-11 13:00 Jens Axboe
2021-12-15 13:00 Jens Axboe
2021-12-16 13:00 Jens Axboe
2021-12-19 13:00 Jens Axboe
2021-12-24 13:00 Jens Axboe
2022-01-10 13:00 Jens Axboe
2022-01-11 13:00 Jens Axboe
2022-01-18 13:00 Jens Axboe
2022-01-19 13:00 Jens Axboe
2022-01-21 13:00 Jens Axboe
2022-01-22 13:00 Jens Axboe
2022-01-27 13:00 Jens Axboe
2022-01-29 13:00 Jens Axboe
2022-02-04 13:00 Jens Axboe
2022-02-05 13:00 Jens Axboe
2022-02-09 13:00 Jens Axboe
2022-02-12 13:00 Jens Axboe
2022-02-16 13:00 Jens Axboe
2022-02-18 13:00 Jens Axboe
2022-02-19 13:00 Jens Axboe
2022-02-21 13:00 Jens Axboe
2022-02-22 13:00 Jens Axboe
2022-02-25 13:00 Jens Axboe
2022-02-27 13:00 Jens Axboe
2022-03-08 13:00 Jens Axboe
2022-03-09 13:00 Jens Axboe
2022-03-10 13:00 Jens Axboe
2022-03-11 13:00 Jens Axboe
2022-03-12 13:00 Jens Axboe
2022-03-16 12:00 Jens Axboe
2022-03-21 12:00 Jens Axboe
2022-03-25 12:00 Jens Axboe
2022-03-29 12:00 Jens Axboe
2022-03-30 12:00 Jens Axboe
2022-03-31 12:00 Jens Axboe
2022-04-06 12:00 Jens Axboe
2022-04-07 12:00 Jens Axboe
2022-04-09 12:00 Jens Axboe
2022-04-11 12:00 Jens Axboe
2022-04-18 12:00 Jens Axboe
2022-04-30 12:00 Jens Axboe
2022-05-02 12:00 Jens Axboe
2022-05-13 12:00 Jens Axboe
2022-05-26 12:00 Jens Axboe
2022-05-30 12:00 Jens Axboe
2022-06-01 12:00 Jens Axboe
2022-06-02 12:00 Jens Axboe
2022-06-14 12:00 Jens Axboe
2022-06-16 12:00 Jens Axboe
2022-06-20 12:00 Jens Axboe
2022-06-23 12:00 Jens Axboe
2022-06-24 12:00 Jens Axboe
2022-07-02 12:00 Jens Axboe
2022-07-06 12:00 Jens Axboe
2022-07-07 12:00 Jens Axboe
2022-07-08 12:00 Jens Axboe
2022-07-12 12:00 Jens Axboe
2022-07-20 12:00 Jens Axboe
2022-07-22 12:00 Jens Axboe
2022-07-23 12:00 Jens Axboe
2022-07-28 12:00 Jens Axboe
2022-07-29 12:00 Jens Axboe
2022-08-01 12:00 Jens Axboe
2022-08-03 12:00 Jens Axboe
2022-08-04 12:00 Jens Axboe
2022-08-08 12:00 Jens Axboe
2022-08-10 12:00 Jens Axboe
2022-08-11 12:00 Jens Axboe
2022-08-12 12:00 Jens Axboe
2022-08-16 12:00 Jens Axboe
2022-08-17 12:00 Jens Axboe
2022-08-24 12:00 Jens Axboe
2022-08-25 12:00 Jens Axboe
2022-08-26 12:00 Jens Axboe
2022-08-27 12:00 Jens Axboe
2022-08-30 12:00 Jens Axboe
2022-08-31 12:00 Jens Axboe
2022-09-01 12:00 Jens Axboe
2022-09-02 12:00 Jens Axboe
2022-09-03 12:00 Jens Axboe
2022-09-04 12:00 Jens Axboe
2022-09-07 12:00 Jens Axboe
2022-09-13 12:00 Jens Axboe
2022-09-14 12:00 Jens Axboe
2022-09-16 12:00 Jens Axboe
2022-09-20 12:00 Jens Axboe
2022-09-23 12:00 Jens Axboe
2022-09-29 12:00 Jens Axboe
2022-10-04 12:00 Jens Axboe
2022-10-05 12:00 Jens Axboe
2022-10-06 12:00 Jens Axboe
2022-10-08 12:00 Jens Axboe
2022-10-15 12:00 Jens Axboe
2022-10-16 12:00 Jens Axboe
2022-10-17 12:00 Jens Axboe
2022-10-19 12:00 Jens Axboe
2022-10-20 12:00 Jens Axboe
2022-10-22 12:00 Jens Axboe
2022-10-25 12:00 Jens Axboe
2022-11-02 12:00 Jens Axboe
2022-11-03 12:00 Jens Axboe
2022-11-05 12:00 Jens Axboe
2022-11-07 13:00 Jens Axboe
2022-11-08 13:00 Jens Axboe
2022-11-15 13:00 Jens Axboe
2022-11-19 13:00 Jens Axboe
2022-11-24 13:00 Jens Axboe
2022-11-29 13:00 Jens Axboe
2022-11-30 13:00 Jens Axboe
2022-12-01 13:00 Jens Axboe
2022-12-02 13:00 Jens Axboe
2022-12-03 13:00 Jens Axboe
2022-12-13 13:00 Jens Axboe
2022-12-16 13:00 Jens Axboe
2022-12-17 13:00 Jens Axboe
2022-12-23 13:00 Jens Axboe
2023-01-12 13:00 Jens Axboe
2023-01-19 13:00 Jens Axboe
2023-01-21 13:00 Jens Axboe
2023-01-24 13:00 Jens Axboe
2023-01-25 13:00 Jens Axboe
2023-01-26 13:00 Jens Axboe
2023-01-31 13:00 Jens Axboe
2023-02-01 13:00 Jens Axboe
2023-02-04 13:00 Jens Axboe
2023-02-07 13:00 Jens Axboe
2023-02-08 13:00 Jens Axboe
2023-02-10 13:00 Jens Axboe
2023-02-11 13:00 Jens Axboe
2023-02-15 13:00 Jens Axboe
2023-02-16 13:00 Jens Axboe
2023-02-18 13:00 Jens Axboe
2023-02-21 13:00 Jens Axboe
2023-02-22 13:00 Jens Axboe
2023-02-24 13:00 Jens Axboe
2023-02-28 13:00 Jens Axboe
2023-03-01 13:00 Jens Axboe
2023-03-03 13:00 Jens Axboe
2023-03-04 13:00 Jens Axboe
2023-03-08 13:00 Jens Axboe
2023-03-15 12:00 Jens Axboe
2023-03-16 12:00 Jens Axboe
2023-03-21 12:00 Jens Axboe
2023-03-22 12:00 Jens Axboe
2023-03-28 12:00 Jens Axboe
2023-04-01 12:00 Jens Axboe
2023-04-05 12:00 Jens Axboe
2023-04-08 12:00 Jens Axboe
2023-04-11 12:00 Jens Axboe
2023-04-14 12:00 Jens Axboe
2023-04-21 12:00 Jens Axboe
2023-04-27 12:00 Jens Axboe
2023-04-28 12:00 Jens Axboe
2023-05-11 12:00 Jens Axboe
2023-05-12 12:00 Jens Axboe
2023-05-16 12:00 Jens Axboe
2023-05-17 12:00 Jens Axboe
2023-05-18 12:00 Jens Axboe
2023-05-19 12:00 Jens Axboe
2023-05-20 12:00 Jens Axboe
2023-05-24 12:00 Jens Axboe
2023-05-25 12:00 Jens Axboe
2023-05-31 12:00 Jens Axboe
2023-06-02 12:00 Jens Axboe
2023-06-09 12:00 Jens Axboe
2023-06-10 12:00 Jens Axboe
2023-06-17 12:00 Jens Axboe
2023-06-22 12:00 Jens Axboe
2023-07-04 12:00 Jens Axboe
2023-07-06 12:00 Jens Axboe
2023-07-14 12:00 Jens Axboe
2023-07-15 12:00 Jens Axboe
2023-07-16 12:00 Jens Axboe
2023-07-21 12:00 Jens Axboe
2023-07-22 12:00 Jens Axboe
2023-07-28 12:00 Jens Axboe
2023-07-29 12:00 Jens Axboe
2023-08-01 12:00 Jens Axboe
2023-08-03 12:00 Jens Axboe
2023-08-04 12:00 Jens Axboe
2023-08-15 12:00 Jens Axboe
2023-08-17 12:00 Jens Axboe
2023-08-24 12:00 Jens Axboe
2023-09-03 12:00 Jens Axboe
2023-09-12 12:00 Jens Axboe
2023-09-16 12:00 Jens Axboe
2023-09-20 12:00 Jens Axboe
2023-09-27 12:00 Jens Axboe
2023-09-29 12:00 Jens Axboe
2023-09-30 12:00 Jens Axboe
2023-10-03 12:00 Jens Axboe
2023-10-07 12:00 Jens Axboe
2023-10-14 12:00 Jens Axboe
2023-10-17 12:00 Jens Axboe
2023-10-20 12:00 Jens Axboe
2023-10-23 12:00 Jens Axboe
2023-10-24 12:00 Jens Axboe
2023-10-26 12:00 Jens Axboe
2023-11-01 12:00 Jens Axboe
2023-11-03 12:00 Jens Axboe
2023-11-04 12:00 Jens Axboe
2023-11-07 13:00 Jens Axboe
2023-11-08 13:00 Jens Axboe
2023-11-20 13:00 Jens Axboe
2023-12-12 13:00 Jens Axboe
2023-12-13 13:00 Jens Axboe
2023-12-15 13:00 Jens Axboe
2023-12-16 13:00 Jens Axboe
2023-12-20 13:00 Jens Axboe
2023-12-30 13:00 Jens Axboe
2024-01-17 13:00 Jens Axboe
2024-01-18 13:00 Jens Axboe
2024-01-19 13:00 Jens Axboe
2024-01-23 13:00 Jens Axboe
2024-01-24 13:00 Jens Axboe
2024-01-25 13:00 Jens Axboe
2024-01-26 13:00 Jens Axboe
2024-01-28 13:00 Jens Axboe
2024-02-08 13:00 Jens Axboe
2024-02-09 13:00 Jens Axboe
2024-02-13 13:00 Jens Axboe
2024-02-14 13:00 Jens Axboe
2024-02-15 13:00 Jens Axboe
2024-02-16 13:00 Jens Axboe
2024-02-17 13:00 Jens Axboe
2024-02-23 13:00 Jens Axboe
2024-02-28 13:00 Jens Axboe
2024-03-05 13:00 Jens Axboe
2024-03-06 13:00 Jens Axboe
2024-03-08 13:00 Jens Axboe
2024-03-19 12:00 Jens Axboe
2024-03-21 12:00 Jens Axboe
2024-03-22 12:00 Jens Axboe
2024-03-23 12:00 Jens Axboe
2024-03-26 12:00 Jens Axboe
2024-03-27 12:00 Jens Axboe
2024-04-03 12:00 Jens Axboe
2024-04-16 12:00 Jens Axboe
2024-04-17 12:00 Jens Axboe
2024-04-18 12:00 Jens Axboe
2024-04-19 12:00 Jens Axboe
2024-04-20 12:00 Jens Axboe
2024-04-25 12:00 Jens Axboe
2024-04-26 12:00 Jens Axboe
2024-05-01 12:00 Jens Axboe
2024-05-22 12:00 Jens Axboe
2024-05-25 12:00 Jens Axboe
2024-05-29 12:00 Jens Axboe
2024-06-01 12:00 Jens Axboe
2024-06-04 12:00 Jens Axboe
2024-06-04 12:11 ` Niklas Cassel
2024-06-04 12:53   ` Vincent Fu
2024-06-05 12:00 Jens Axboe
2024-06-07 12:00 Jens Axboe
2024-06-08 12:00 Jens Axboe
2024-06-12 12:00 Jens Axboe
2024-06-13 12:00 Jens Axboe
2024-06-15 12:00 Jens Axboe
2024-06-29 12:00 Jens Axboe
2024-07-12 12:00 Jens Axboe
2024-07-13 12:00 Jens Axboe
2024-07-16 12:00 Jens Axboe
2024-07-18 12:00 Jens Axboe
2024-07-27 12:00 Jens Axboe
2024-08-06 12:00 Jens Axboe
2024-08-07 12:00 Jens Axboe
2024-08-17 12:00 Jens Axboe
2024-08-22 12:00 Jens Axboe
2024-08-29 12:00 Jens Axboe
2024-08-30 12:00 Jens Axboe
2024-09-04 12:00 Jens Axboe
2024-09-05 12:00 Jens Axboe
2024-09-06 12:00 Jens Axboe
2024-09-07 12:00 Jens Axboe
2024-09-17 12:00 Jens Axboe
2024-09-27 12:00 Jens Axboe
2024-09-28 12:00 Jens Axboe
2024-10-01 12:00 Jens Axboe
2024-10-03 12:00 Jens Axboe
2024-10-04 12:00 Jens Axboe
2024-10-17 12:00 Jens Axboe
2024-10-29 12:00 Jens Axboe
2024-11-05 13:00 Jens Axboe
2024-11-06 13:00 Jens Axboe
2024-11-23 13:00 Jens Axboe
2024-12-05 13:00 Jens Axboe
2024-12-10 13:00 Jens Axboe
2024-12-17 13:00 Jens Axboe
2025-01-22 13:00 Jens Axboe
2025-01-23 13:00 Jens Axboe
2025-01-24 13:00 Jens Axboe
2025-02-14 13:00 Jens Axboe
2025-02-15 13:00 Jens Axboe
2025-02-18 13:00 Jens Axboe
2025-02-19 13:00 Jens Axboe
2025-02-21 13:00 Jens Axboe
2025-03-06 13:00 Jens Axboe
2025-03-07 13:00 Jens Axboe
2025-03-08 13:00 Jens Axboe
2025-03-19 12:00 Jens Axboe
2025-04-05 12:00 Jens Axboe
2025-04-08 12:00 Jens Axboe
2025-04-15 12:00 Jens Axboe
2025-04-16 12:00 Jens Axboe
2025-05-07 12:00 Jens Axboe
2025-05-08 12:00 Jens Axboe
2025-05-09 12:00 Jens Axboe
2025-05-10 12:00 Jens Axboe
2025-05-14 12:00 Jens Axboe
2025-05-17 12:00 Jens Axboe
2025-05-21 12:00 Jens Axboe
2025-05-24 12:00 Jens Axboe
2025-06-01 12:00 Jens Axboe
2025-06-03 12:00 Jens Axboe
2025-06-05 12:00 Jens Axboe
2025-06-24 12:00 Jens Axboe
2025-07-01 12:00 Jens Axboe
2025-07-09 12:00 Jens Axboe
2025-07-10 12:00 Jens Axboe
2025-07-17 12:00 Jens Axboe
2025-07-19 12:00 Jens Axboe
2025-07-23 12:00 Jens Axboe
2025-07-24 12:00 Jens Axboe
2025-08-01 12:00 Jens Axboe
2025-08-03 12:00 Jens Axboe
2025-08-06 12:00 Jens Axboe
2025-08-08 12:00 Jens Axboe
2025-08-10 12:00 Jens Axboe
2025-08-12 12:00 Jens Axboe
2025-08-19 12:00 Jens Axboe
2025-08-20 12:00 Jens Axboe
2025-08-21 12:00 Jens Axboe
2025-08-22 12:00 Jens Axboe
2025-08-23 12:00 Jens Axboe
2025-08-26 12:00 Jens Axboe
2025-08-27 12:00 Jens Axboe
2025-09-04 12:00 Jens Axboe
2025-09-05 12:00 Jens Axboe
2025-09-06 12:00 Jens Axboe
2025-09-09 12:00 Jens Axboe
2025-09-17 12:00 Jens Axboe
2025-09-18 12:00 Jens Axboe
2025-09-19 12:00 Jens Axboe
2025-09-24 12:00 Jens Axboe
2025-09-26 12:00 Jens Axboe
2025-10-02 12:00 Jens Axboe
2025-10-05 12:00 Jens Axboe
2025-10-06 12:00 Jens Axboe
2025-10-09 12:00 Jens Axboe
2025-10-10 12:00 Jens Axboe
2025-10-11 12:00 Jens Axboe
2025-10-16 12:00 Jens Axboe
2025-10-29 12:00 Jens Axboe
2025-10-30 12:00 Jens Axboe
2025-10-31 12:00 Jens Axboe
2025-11-01 12:00 Jens Axboe
2025-11-06 13:00 Jens Axboe
2025-11-15 13:00 Jens Axboe
2025-11-18 13:00 Jens Axboe
2025-11-19 13:00 Jens Axboe
2025-11-25 13:00 Jens Axboe
2025-12-09 13:00 Jens Axboe
2025-12-14 13:00 Jens Axboe
2025-12-17 13:00 Jens Axboe
2025-12-19 13:00 Jens Axboe
2025-12-30 13:00 Jens Axboe
2026-01-08 13:00 Jens Axboe
2026-01-12 13:00 Jens Axboe
2026-01-16 13:00 Jens Axboe
2026-01-17 13:00 Jens Axboe
2026-01-21 13:00 Jens Axboe
2026-01-24 13:00 Jens Axboe
2026-01-28 13:00 Jens Axboe
2026-01-31 13:00 Jens Axboe
2026-02-03 13:00 Jens Axboe
2026-02-06 13:00 Jens Axboe
2026-02-09 13:00 Jens Axboe
2026-02-10 13:00 Jens Axboe
2026-02-14 13:00 Jens Axboe
2026-02-25 13:00 Jens Axboe
2026-03-02 13:00 Jens Axboe
2026-03-03 13:00 Jens Axboe
2026-03-04 13:00 Jens Axboe
2026-03-10 12:00 Jens Axboe
2026-03-11 12:00 Jens Axboe
2026-03-17 12:00 Jens Axboe
2026-03-19 12:00 Jens Axboe
2026-04-02 12:00 Jens Axboe
2026-04-07 12:00 Jens Axboe
2026-04-08 12:00 Jens Axboe
2026-04-17 12:00 Jens Axboe
2026-04-18 12:00 Jens Axboe
2026-04-23 12:00 Jens Axboe
2026-04-29 12:00 Jens Axboe
2026-05-01 12:00 Jens Axboe
2026-05-13 12:00 Jens Axboe
2026-05-16 12: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=20151231130001.DFF2C2C00B6@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