• Linus Torvalds's avatar
    Merge tag 'for-5.12/io_uring-2021-02-17' of git://git.kernel.dk/linux-block · 5bbb336b
    Linus Torvalds authored
    Pull io_uring updates from Jens Axboe:
     "Highlights from this cycles are things like request recycling and
      task_work optimizations, which net us anywhere from 10-20% of speedups
      on workloads that mostly are inline.
    
      This work was originally done to put io_uring under memcg, which adds
      considerable overhead. But it's a really nice win as well. Also worth
      highlighting is the LOOKUP_CACHED work in the VFS, and using it in
      io_uring. Greatly speeds up the fast path for file opens.
    
      Summary:
    
       - Put io_uring under memcg protection. We accounted just the rings
         themselves under rlimit memlock before, now we account everything.
    
       - Request cache recycling, persistent across invocations (Pavel, me)
    
       - First part of a cleanup/improvement to buffer registration (Bijan)
    
       - SQPOLL fixes (Hao)
    
       - File registration NULL pointer fixup (Dan)
    
       - LOOKUP_CACHED support for io_uring
    
       - Disable /proc/thread-self/ for io_uring, like we do for /proc/self
    
       - Add Pavel to the io_uring MAINTAINERS entry
    
       - Tons of code cleanups and optimizations (Pavel)
    
       - Support for skip entries in file registration (Noah)"
    
    * tag 'for-5.12/io_uring-2021-02-17' of git://git.kernel.dk/linux-block: (103 commits)
      io_uring: tctx->task_lock should be IRQ safe
      proc: don't allow async path resolution of /proc/thread-self components
      io_uring: kill cached requests from exiting task closing the ring
      io_uring: add helper to free all request caches
      io_uring: allow task match to be passed to io_req_cache_free()
      io-wq: clear out worker ->fs and ->files
      io_uring: optimise io_init_req() flags setting
      io_uring: clean io_req_find_next() fast check
      io_uring: don't check PF_EXITING from syscall
      io_uring: don't split out consume out of SQE get
      io_uring: save ctx put/get for task_work submit
      io_uring: don't duplicate io_req_task_queue()
      io_uring: optimise SQPOLL mm/files grabbing
      io_uring: optimise out unlikely link queue
      io_uring: take compl state from submit state
      io_uring: inline io_complete_rw_common()
      io_uring: move res check out of io_rw_reissue()
      io_uring: simplify iopoll reissuing
      io_uring: clean up io_req_free_batch_finish()
      io_uring: move submit side state closer in the ring
      ...
    5bbb336b
io_uring.c 248 KB