Commit 8350142a4b4c for kernel

commit 8350142a4b4cedebfa76cd4cc6e5a7ba6a330629
Merge: 77a0cfafa9af a652958888fb
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Nov 18 17:02:57 2024 -0800

    Merge tag 'for-6.13/io_uring-20241118' of git://git.kernel.dk/linux

    Pull io_uring updates from Jens Axboe:

     - Cleanups of the eventfd handling code, making it fully private.

     - Support for sending a sync message to another ring, without having a
       ring available to send a normal async message.

     - Get rid of the separate unlocked hash table, unify everything around
       the single locked one.

     - Add support for ring resizing. It can be hard to appropriately size
       the CQ ring upfront, if the application doesn't know how busy it will
       be. This results in applications sizing rings for the most busy case,
       which can be wasteful. With ring resizing, they can start small and
       grow the ring, if needed.

     - Add support for fixed wait regions, rather than needing to copy the
       same wait data tons of times for each wait operation.

     - Rewrite the resource node handling, which before was serialized per
       ring. This caused issues with particularly fixed files, where one
       file waiting on IO could hold up putting and freeing of other
       unrelated files. Now each node is handled separately. New code is
       much simpler too, and was a net 250 line reduction in code.

     - Add support for just doing partial buffer clones, rather than always
       cloning the entire buffer table.

     - Series adding static NAPI support, where a specific NAPI instance is
       used rather than having a list of them available that need lookup.

     - Add support for mapped regions, and also convert the fixed wait
       support mentioned above to that concept. This avoids doing special
       mappings for various planned features, and folds the existing
       registered wait into that too.

     - Add support for hybrid IO polling, which is a variant of strict
       IOPOLL but with an initial sleep delay to avoid spinning too early
       and wasting resources on devices that aren't necessarily in the < 5
       usec category wrt latencies.

     - Various cleanups and little fixes.

    * tag 'for-6.13/io_uring-20241118' of git://git.kernel.dk/linux: (79 commits)
      io_uring/region: fix error codes after failed vmap
      io_uring: restore back registered wait arguments
      io_uring: add memory region registration
      io_uring: introduce concept of memory regions
      io_uring: temporarily disable registered waits
      io_uring: disable ENTER_EXT_ARG_REG for IOPOLL
      io_uring: fortify io_pin_pages with a warning
      switch io_msg_ring() to CLASS(fd)
      io_uring: fix invalid hybrid polling ctx leaks
      io_uring/uring_cmd: fix buffer index retrieval
      io_uring/rsrc: add & apply io_req_assign_buf_node()
      io_uring/rsrc: remove '->ctx_ptr' of 'struct io_rsrc_node'
      io_uring/rsrc: pass 'struct io_ring_ctx' reference to rsrc helpers
      io_uring: avoid normal tw intermediate fallback
      io_uring/napi: add static napi tracking strategy
      io_uring/napi: clean up __io_napi_do_busy_loop
      io_uring/napi: Use lock guards
      io_uring/napi: improve __io_napi_add
      io_uring/napi: fix io_napi_entry RCU accesses
      io_uring/napi: protect concurrent io_napi_entry timeout accesses
      ...