Recent changes (master)
The following changes since commit 4c085cf20f5c0d083aca18680c4323a1fb2b7a1f:
rate-submit: call ioengine post_init when starting workers (2019-01-24 13:58:00 -0700)
are available in the Git repository at:
git://git.kernel.dk/fio.git master
for you to fetch changes up to b532dd6d476679b08e4a56a60e8a7dd958779df9:
io_uring: sync with kernel (2019-01-28 11:42:20 -0700)
----------------------------------------------------------------
Jens Axboe (2):
Merge branch 'hygon-support' of https://github.com/hygonsoc/fio
io_uring: sync with kernel
hygonsoc (1):
Add Hygon SoC support to enable tsc_reliable feature
arch/arch-x86-common.h | 2 +- engines/io_uring.c | 3 ++- os/linux/io_uring.h | 9 ++++++++- t/io_uring.c | 2 ++ 4 files changed, 13 insertions(+), 3 deletions(-)
---
Diff of recent changes:
arch/arch-x86-common.h +1 -1
@@ -81,7 +81,7 @@ static inline void arch_init(char *envp[]) str[12 ] ='\0' ;if (!strcmp (str,"GenuineIntel" ))arch_init_intel (); -else if (!strcmp (str,"AuthenticAMD" )) +else if (!strcmp (str,"AuthenticAMD" ) || !strcmp (str,"HygonGenuine" ))arch_init_amd (); }
engines/io_uring.c +2 -1
@@ -340,7 +340,8 @@ static int fio_ioring_commit(struct thread_data *td)read_barrier ();if (*ring->flags &IORING_SQ_NEED_WAKEUP ) -io_uring_enter (ld, ld->queued,0 ,0 ); +io_uring_enter (ld, ld->queued,0 , +IORING_ENTER_SQ_WAKEUP ); ld->queued =0 ;return 0 ; }
os/linux/io_uring.h +8 -1
@@ -11,6 +11,8 @@#include <linux/fs.h> #include <linux/types.h> +#define IORING_MAX_ENTRIES 4096 +/* * IO submission data structure (Submission Queue Entry) */
@@ -25,6 +27,7 @@ struct io_uring_sqe {union {__kernel_rwf_t rw_flags;__u32 fsync_flags; +__u16 poll_events; };__u64 user_data;/* data to be passed back at completion time */ union {
@@ -51,6 +54,8 @@ struct io_uring_sqe {#define IORING_OP_FSYNC 3#define IORING_OP_READ_FIXED 4#define IORING_OP_WRITE_FIXED 5 +#define IORING_OP_POLL_ADD 6 +#define IORING_OP_POLL_REMOVE 7/* * sqe->fsync_flags
@@ -111,6 +116,7 @@ struct io_cqring_offsets {* io_uring_enter(2) flags */ #define IORING_ENTER_GETEVENTS (1 << 0) +#define IORING_ENTER_SQ_WAKEUP (1 << 1)/* * Passed in for io_uring_setup(2). Copied back with updated info on success
@@ -120,7 +126,8 @@ struct io_uring_params {__u32 cq_entries;__u32 flags;__u16 sq_thread_cpu; -__u16 resv[9 ]; +__u16 sq_thread_idle; +__u16 resv[8 ];struct io_sqring_offsets sq_off;struct io_cqring_offsets cq_off; };
t/io_uring.c +2 -0
@@ -315,6 +315,8 @@ submit:if (to_wait) flags =IORING_ENTER_GETEVENTS ; +if (*ring->flags &IORING_SQ_NEED_WAKEUP ) + flags |=IORING_ENTER_SQ_WAKEUP ; ret =io_uring_enter (s, to_submit, to_wait, flags); s->calls++; }