• Linus Torvalds's avatar
    Merge tag 'for-5.13/io_uring-2021-04-27' of git://git.kernel.dk/linux-block · 625434da
    Linus Torvalds authored
    Pull io_uring updates from Jens Axboe:
    
     - Support for multi-shot mode for POLL requests
    
     - More efficient reference counting. This is shamelessly stolen from
       the mm side. Even though referencing is mostly single/dual user, the
       128 count was retained to keep the code the same. Maybe this
       should/could be made generic at some point.
    
     - Removal of the need to have a manager thread for each ring. The
       manager threads only job was checking and creating new io-threads as
       needed, instead we handle this from the queue path.
    
     - Allow SQPOLL without CAP_SYS_ADMIN or CAP_SYS_NICE. Since 5.12, this
       thread is "just" a regular application thread, so no need to restrict
       use of it anymore.
    
     - Cleanup of how internal async poll data lifetime is managed.
    
     - Fix for syzbot reported crash on SQPOLL cancelation.
    
     - Make buffer registration more like file registrations, which includes
       flexibility in avoiding full set unregistration and re-registration.
    
     - Fix for io-wq affinity setting.
    
     - Be a bit more defensive in task->pf_io_worker setup.
    
     - Various SQPOLL fixes.
    
     - Cleanup of SQPOLL creds handling.
    
     - Improvements to in-flight request tracking.
    
     - File registration cleanups.
    
     - Tons of cleanups and little fixes
    
    * tag 'for-5.13/io_uring-2021-04-27' of git://git.kernel.dk/linux-block: (156 commits)
      io_uring: maintain drain logic for multishot poll requests
      io_uring: Check current->io_uring in io_uring_cancel_sqpoll
      io_uring: fix NULL reg-buffer
      io_uring: simplify SQPOLL cancellations
      io_uring: fix work_exit sqpoll cancellations
      io_uring: Fix uninitialized variable up.resv
      io_uring: fix invalid error check after malloc
      io_uring: io_sq_thread() no longer needs to reset current->pf_io_worker
      kernel: always initialize task->pf_io_worker to NULL
      io_uring: update sq_thread_idle after ctx deleted
      io_uring: add full-fledged dynamic buffers support
      io_uring: implement fixed buffers registration similar to fixed files
      io_uring: prepare fixed rw for dynanic buffers
      io_uring: keep table of pointers to ubufs
      io_uring: add generic rsrc update with tags
      io_uring: add IORING_REGISTER_RSRC
      io_uring: enumerate dynamic resources
      io_uring: add generic path for rsrc update
      io_uring: preparation for rsrc tagging
      io_uring: decouple CQE filling from requests
      ...
    625434da
io_uring.c 248 KB