for-5.14/io_uring-2021-06-30

-----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAmDc0SsQHGF4Ym9lQGtl
 cm5lbC5kawAKCRD301j7KXHgpt6BD/9ZHzfDCPVfd0ivftRYOS2GECZetR79Ar8h
 RdMPi4iSw1+gFbqKVpD38tBvJsvKq0/jVPap056KaxbdsU+JCG1dYfllbsK4tpVO
 uqDHDIX3YODmkRkqc6IkPtdxvATS3JBGdP9GOSEobgygOPs9qBXXd4tdP+2Hyzna
 0DUIGnuO3VTfBa03OiHoIeC9Zo3o9sCIYHY1RG+awL/+43WeMQ8ZFX4CfYhgWTTp
 HyzzHdu67xAoVgsIyg5dTuV+Vo3cEtHXg8IKbDXoDQ1SAyr96Uw5pJ7JEq80mqyZ
 sxth6PlS0Safh6xJ5w6ZLIAaPz1fkL+2q1CeQAhkeWLuk6FImt0ZoxElbSkW+pTv
 LqVcXl+F65QhNQZ195OgPI+RGTSA5VQlAW0QwGnmEeket7pzqkdcLPVy1CO8ANiT
 t5qn8ZZmNFLMhnWGU/3zNyHQLvwKslxucpvrkS9Ol/6Yh9yKVEsAXC7yrk3F3dAF
 i4RAExbbUzUJKvRkm3kXpwUg2BGtJD7Achw9HD+prFKdt08XDLvffC8GnCqWd/4a
 zL9oSHR2OLV7RAQpDQ5cC7ZjWV20xsd2NM+pHk5rzbb9udQZWrJ2K218sqKkgFme
 MJzYIt/a79KvBh9+TvJBhx1adnmE4gBH4X23ZMN1hMXzoyVY5mELHbe5LwBSkibx
 A1DxPKv4vg==
 =FEZd
 -----END PGP SIGNATURE-----

Merge tag 'for-5.14/io_uring-2021-06-30' of git://git.kernel.dk/linux-block

Pull io_uring updates from Jens Axboe:

 - Multi-queue iopoll improvement (Fam)

 - Allow configurable io-wq CPU masks (me)

 - renameat/linkat tightening (me)

 - poll re-arm improvement (Olivier)

 - SQPOLL race fix (Olivier)

 - Cancelation unification (Pavel)

 - SQPOLL cleanups (Pavel)

 - Enable file backed buffers for shmem/memfd (Pavel)

 - A ton of cleanups and performance improvements (Pavel)

 - Followup and misc fixes (Colin, Fam, Hao, Olivier)

* tag 'for-5.14/io_uring-2021-06-30' of git://git.kernel.dk/linux-block: (83 commits)
  io_uring: code clean for kiocb_done()
  io_uring: spin in iopoll() only when reqs are in a single queue
  io_uring: pre-initialise some of req fields
  io_uring: refactor io_submit_flush_completions
  io_uring: optimise hot path restricted checks
  io_uring: remove not needed PF_EXITING check
  io_uring: mainstream sqpoll task_work running
  io_uring: refactor io_arm_poll_handler()
  io_uring: reduce latency by reissueing the operation
  io_uring: add IOPOLL and reserved field checks to IORING_OP_UNLINKAT
  io_uring: add IOPOLL and reserved field checks to IORING_OP_RENAMEAT
  io_uring: refactor io_openat2()
  io_uring: simplify struct io_uring_sqe layout
  io_uring: update sqe layout build checks
  io_uring: fix code style problems
  io_uring: refactor io_sq_thread()
  io_uring: don't change sqpoll creds if not needed
  io_uring: Create define to modify a SQPOLL parameter
  io_uring: Fix race condition when sqp thread goes to sleep
  io_uring: improve in tctx_task_work() resubmission
  ...
This commit is contained in:
Linus Torvalds 2021-07-01 12:16:24 -07:00
commit c288d9cd71
5 changed files with 877 additions and 693 deletions

View file

@ -46,21 +46,17 @@ struct io_uring_sqe {
__u32 unlink_flags;
};
__u64 user_data; /* data to be passed back at completion time */
/* pack this to avoid bogus arm OABI complaints */
union {
struct {
/* pack this to avoid bogus arm OABI complaints */
union {
/* index into fixed buffers, if used */
__u16 buf_index;
/* for grouped buffer selection */
__u16 buf_group;
} __attribute__((packed));
/* personality to use, if used */
__u16 personality;
__s32 splice_fd_in;
};
__u64 __pad2[3];
};
/* index into fixed buffers, if used */
__u16 buf_index;
/* for grouped buffer selection */
__u16 buf_group;
} __attribute__((packed));
/* personality to use, if used */
__u16 personality;
__s32 splice_fd_in;
__u64 __pad2[2];
};
enum {
@ -306,6 +302,10 @@ enum {
IORING_REGISTER_BUFFERS2 = 15,
IORING_REGISTER_BUFFERS_UPDATE = 16,
/* set/clear io-wq thread affinities */
IORING_REGISTER_IOWQ_AFF = 17,
IORING_UNREGISTER_IOWQ_AFF = 18,
/* this goes last */
IORING_REGISTER_LAST
};