Hi Linus, io_uring updates for the 5.15 release: - Cancelation cleanups (Hao, Pavel) - io-wq accounting cleanup (Hao) - io_uring submit locking fix (Hao) - io_uring link handling fixes (Hao) - Fixed file improvements (wangyangbo, Pavel) - Allow updates of linked timeouts like regular timeouts (Pavel) - IOPOLL fix (Pavel) - Remove batched file get optimization (Pavel) - Improve reference handling (Pavel) - IRQ task_work batching (Pavel) - Allow pure fixed file, and add support for open/accept (Pavel) - GFP_ATOMIC RT kernel fix - Multiple CQ ring waiter improvement - Funnel IRQ completions through task_work - Add support for limiting async workers explicitly - Add different clocksource support for timeouts - io-wq wakeup race fix - Lots of cleanups and improvement (Pavel et al) Please pull! The following changes since commit e22ce8eb631bdc47a4a4ea7ecf4e4ba499db4f93: Linux 5.14-rc7 (2021-08-22 14:24:56 -0700) are available in the Git repository at: git://git.kernel.dk/linux-block.git tags/for-5.15/io_uring-2021-08-30 for you to fetch changes up to 87df7fb922d18e96992aa5e824aa34b2065fef59: io-wq: fix wakeup race when adding new work (2021-08-30 07:45:47 -0600) ---------------------------------------------------------------- for-5.15/io_uring-2021-08-30 ---------------------------------------------------------------- Hao Xu (8): io_uring: extract io_uring_files_cancel() in io_uring_task_cancel() io_uring: remove files pointer in cancellation functions io_uring: code clean for completion_lock in io_arm_poll_handler() io-wq: move nr_running and worker_refs out of wqe->lock protection io_uring: fix lack of protection for compl_nr io_uring: don't free request to slab io_uring: remove redundant req_set_fail() io_uring: fix failed linkchain code logic Jens Axboe (14): io-wq: remove GFP_ATOMIC allocation off schedule out path io_uring: be smarter about waking multiple CQ ring waiters io_uring: run timeouts from task_work io_uring: run linked timeouts from task_work io_uring: run regular file completions from task_work io_uring: remove IRQ aspect of io_ring_ctx completion lock io_uring: correct __must_hold annotation io_uring: add comments on why PF_EXITING checking is safe io_uring: add clarifying comment for io_cqring_ev_posted() io-wq: provide a way to limit max number of workers io_uring: support CLOCK_BOOTTIME/REALTIME for timeouts io-wq: check max_worker limits if a worker transitions bound state io-wq: wqe and worker locks no longer need to be IRQ safe io-wq: fix wakeup race when adding new work Pavel Begunkov (64): io_uring: use kvmalloc for fixed files io_uring: inline fixed part of io_file_get() io_uring: rename io_file_supports_async() io_uring: avoid touching inode in rw prep io_uring: clean io-wq callbacks io_uring: remove unnecessary PF_EXITING check io-wq: improve wq_list_add_tail() io_uring: refactor io_alloc_req io_uring: don't halt iopoll too early io_uring: add more locking annotations for submit io_uring: optimise io_cqring_wait() hot path io_uring: extract a helper for ctx quiesce io_uring: move io_put_task() definition io_uring: move io_rsrc_node_alloc() definition io_uring: inline io_free_req_deferred io_uring: deduplicate open iopoll check io_uring: improve ctx hang handling io_uring: kill unused IO_IOPOLL_BATCH io_uring: drop exec checks from io_req_task_submit io_uring: optimise putting task struct io_uring: move io_fallback_req_func() io_uring: cache __io_free_req()'d requests io_uring: remove redundant args from cache_free io_uring: use inflight_entry instead of compl.list io_uring: inline struct io_comp_state io_uring: remove extra argument for overflow flush io_uring: inline io_poll_remove_waitqs io_uring: clean up tctx_task_work() io_uring: remove file batch-get optimisation io_uring: move req_ref_get() and friends io_uring: remove req_ref_sub_and_test() io_uring: remove submission references io_uring: skip request refcounting io_uring: optimise hot path of ltimeout prep io_uring: optimise iowq refcounting io_uring: don't inflight-track linked timeouts io_uring: optimise initial ltimeout refcounting io_uring: kill not necessary resubmit switch io_uring: deduplicate cancellation code io_uring: kill REQ_F_LTIMEOUT_ACTIVE io_uring: simplify io_prep_linked_timeout io_uring: cancel not-armed linked touts separately io_uring: optimise io_prep_linked_timeout() io_uring: better encapsulate buffer select for rw io_uring: reuse io_req_complete_post() io_uring: improve same wq polling io_uring: fix io_timeout_remove locking io_uring: extend task put optimisations io_uring: limit fixed table size by RLIMIT_NOFILE io_uring: place fixed tables under memcg limits io_uring: add ->splice_fd_in checks io_uring: flush completions for fallbacks io_uring: batch task work locking io_uring: IRQ rw completion batching io_uring: fix io_try_cancel_userdata race for iowq net: add accept helper not installing fd io_uring: openat directly into fixed fd table io_uring: hand code io_accept() fd installing io_uring: accept directly into fixed file table io_uring: add task-refs-get helper io_uring: clarify io_req_task_cancel() locking io_uring: add build check for buf_index overflows io_uring: keep ltimeouts in a list io_uring: allow updating linked timeouts wangyangbo (1): io_uring: Add register support for non-4k PAGE_SIZE fs/io-wq.c | 208 +++-- fs/io-wq.h | 3 +- fs/io_uring.c | 1767 ++++++++++++++++++++++++----------------- include/linux/io_uring.h | 11 +- include/linux/socket.h | 3 + include/uapi/linux/io_uring.h | 18 +- kernel/exit.c | 2 +- net/socket.c | 71 +- 8 files changed, 1227 insertions(+), 856 deletions(-) -- Jens Axboe