Commit ecb8490b authored by Jens Axboe's avatar Jens Axboe
Browse files

Merge branch 'io_uring-6.18' into for-6.19/io_uring



Merge 6.18-rc io_uring fixes, as certain coming changes depend on some
of these.

* io_uring-6.18:
  io_uring/rsrc: don't use blk_rq_nr_phys_segments() as number of bvecs
  io_uring/query: return number of available queries
  io_uring/rw: ensure allocated iovec gets cleared for early failure
  io_uring: fix regbuf vector size truncation
  io_uring: fix types for region size calulation
  io_uring/zcrx: remove sync refill uapi
  io_uring: fix buffer auto-commit for multishot uring_cmd
  io_uring: correct __must_hold annotation in io_install_fixed_file
  io_uring zcrx: add MAINTAINERS entry
  io_uring: Fix code indentation error
  io_uring/sqpoll: be smarter on when to update the stime usage
  io_uring/sqpoll: switch away from getrusage() for CPU accounting
  io_uring: fix incorrect unlikely() usage in io_waitid_prep()

Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parents 712fbe97 2d0e88f3
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -13111,6 +13111,15 @@ F: include/uapi/linux/io_uring.h
F:	include/uapi/linux/io_uring/
F:	io_uring/
IO_URING ZCRX
M:	Pavel Begunkov <asml.silence@gmail.com>
L:	io-uring@vger.kernel.org
L:	netdev@vger.kernel.org
T:	git https://github.com/isilence/linux.git zcrx/for-next
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux.git
S:	Maintained
F:	io_uring/zcrx.*
IPMI SUBSYSTEM
M:	Corey Minyard <corey@minyard.net>
L:	openipmi-developer@lists.sourceforge.net (moderated for non-subscribers)
+0 −12
Original line number Diff line number Diff line
@@ -697,9 +697,6 @@ enum io_uring_register_op {
	/* query various aspects of io_uring, see linux/io_uring/query.h */
	IORING_REGISTER_QUERY			= 35,

	/* return zcrx buffers back into circulation */
	IORING_REGISTER_ZCRX_REFILL		= 36,

	/* this goes last */
	IORING_REGISTER_LAST,

@@ -1081,15 +1078,6 @@ struct io_uring_zcrx_ifq_reg {
	__u64	__resv[3];
};

struct io_uring_zcrx_sync_refill {
	__u32		zcrx_id;
	/* the number of entries to return */
	__u32		nr_entries;
	/* pointer to an array of struct io_uring_zcrx_rqe */
	__u64		rqes;
	__u64		__resv[2];
};

#ifdef __cplusplus
}
#endif
+3 −0
Original line number Diff line number Diff line
@@ -36,6 +36,9 @@ struct io_uring_query_opcode {
	__u64	enter_flags;
	/* Bitmask of all supported IOSQE_* flags */
	__u64	sqe_flags;
	/* The number of available query opcodes */
	__u32	nr_query_opcodes;
	__u32	__pad;
};

#endif
+4 −4
Original line number Diff line number Diff line
@@ -61,7 +61,6 @@ static void __io_uring_show_fdinfo(struct io_ring_ctx *ctx, struct seq_file *m)
{
	struct io_overflow_cqe *ocqe;
	struct io_rings *r = ctx->rings;
	struct rusage sq_usage;
	unsigned int sq_mask = ctx->sq_entries - 1, cq_mask = ctx->cq_entries - 1;
	unsigned int sq_head = READ_ONCE(r->sq.head);
	unsigned int sq_tail = READ_ONCE(r->sq.tail);
@@ -179,14 +178,15 @@ static void __io_uring_show_fdinfo(struct io_ring_ctx *ctx, struct seq_file *m)
		 * thread termination.
		 */
		if (tsk) {
			u64 usec;

			get_task_struct(tsk);
			rcu_read_unlock();
			getrusage(tsk, RUSAGE_SELF, &sq_usage);
			usec = io_sq_cpu_usec(tsk);
			put_task_struct(tsk);
			sq_pid = sq->task_pid;
			sq_cpu = sq->sq_cpu;
			sq_total_time = (sq_usage.ru_stime.tv_sec * 1000000
					 + sq_usage.ru_stime.tv_usec);
			sq_total_time = usec;
			sq_work_time = sq->work_time;
		} else {
			rcu_read_unlock();
+1 −1
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ void io_free_file_tables(struct io_ring_ctx *ctx, struct io_file_table *table)

static int io_install_fixed_file(struct io_ring_ctx *ctx, struct file *file,
				 u32 slot_index)
	__must_hold(&req->ctx->uring_lock)
	__must_hold(&ctx->uring_lock)
{
	struct io_rsrc_node *node;

Loading