Recent changes (master)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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:

diff --git a/arch/arch-x86-common.h b/arch/arch-x86-common.h
index 7c07a61c..87925bdc 100644
--- a/arch/arch-x86-common.h
+++ b/arch/arch-x86-common.h
@@ -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();
 }
 
diff --git a/engines/io_uring.c b/engines/io_uring.c
index c759ec19..5279b1d0 100644
--- a/engines/io_uring.c
+++ b/engines/io_uring.c
@@ -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;
 	}
diff --git a/os/linux/io_uring.h b/os/linux/io_uring.h
index 9bb71816..589b6402 100644
--- a/os/linux/io_uring.h
+++ b/os/linux/io_uring.h
@@ -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;
 };
diff --git a/t/io_uring.c b/t/io_uring.c
index da3b4d1f..9ded1590 100644
--- a/t/io_uring.c
+++ b/t/io_uring.c
@@ -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++;
 		}



[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux