• Linus Torvalds's avatar
    Merge tag 'for-6.12/io_uring-20240922' of git://git.kernel.dk/linux · 3147a068
    Linus Torvalds authored
    Pull more io_uring updates from Jens Axboe:
     "Mostly just a set of fixes in here, or little changes that didn't get
      included in the initial pull request. This contains:
    
       - Move the SQPOLL napi polling outside the submission lock (Olivier)
    
       - Rename of the "copy buffers" API that got added in the 6.12 merge
         window. There's really no copying going on, it's just referencing
         the buffers. After a bit of consideration, decided that it was
         better to simply rename this to avoid potential confusion (me)
    
       - Shrink struct io_mapped_ubuf from 48 to 32 bytes, by changing it to
         start + len tracking rather than having start / end in there, and
         by removing the caching of folio_mask when we can just calculate it
         from folio_shift when we need it (me)
    
       - Fixes for the SQPOLL affinity checking (me, Felix)
    
       - Fix for how cqring waiting checks for the presence of task_work.
         Just check it directly rather than check for a specific
         notification mechanism (me)
    
       - Tweak to how request linking is represented in tracing (me)
    
       - Fix a syzbot report that deliberately sets up a huge list of
         overflow entries, and then hits rcu stalls when flushing this list.
         Just check for the need to preempt, and drop/reacquire locks in the
         loop. There's no state maintained over the loop itself, and each
         entry is yanked from head-of-list (me)"
    
    * tag 'for-6.12/io_uring-20240922' of git://git.kernel.dk/linux:
      io_uring: check if we need to reschedule during overflow flush
      io_uring: improve request linking trace
      io_uring: check for presence of task_work rather than TIF_NOTIFY_SIGNAL
      io_uring/sqpoll: do the napi busy poll outside the submission block
      io_uring: clean up a type in io_uring_register_get_file()
      io_uring/sqpoll: do not put cpumask on stack
      io_uring/sqpoll: retain test for whether the CPU is valid
      io_uring/rsrc: change ubuf->ubuf_end to length tracking
      io_uring/rsrc: get rid of io_mapped_ubuf->folio_mask
      io_uring: rename "copy buffers" to "clone buffers"
    3147a068
sqpoll.c 12.4 KB