Files
linux/include/linux
Jens Axboe 87585b0575 io_uring/kbuf: use vm_insert_pages() for mmap'ed pbuf ring
Rather than use remap_pfn_range() for this and manually free later,
switch to using vm_insert_page() and have it Just Work.

This requires a bit of effort on the mmap lookup side, as the ctx
uring_lock isn't held, which  otherwise protects buffer_lists from being
torn down, and it's not safe to grab from mmap context that would
introduce an ABBA deadlock between the mmap lock and the ctx uring_lock.
Instead, lookup the buffer_list under RCU, as the the list is RCU freed
already. Use the existing reference count to determine whether it's
possible to safely grab a reference to it (eg if it's not zero already),
and drop that reference when done with the mapping. If the mmap
reference is the last one, the buffer_list and the associated memory can
go away, since the vma insertion has references to the inserted pages at
that point.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
2024-04-15 08:10:26 -06:00
..
2024-03-07 21:52:03 +00:00
2024-03-27 13:17:15 +01:00
2024-03-11 15:37:23 -07:00
2024-03-07 20:37:04 +00:00
2024-02-20 14:22:55 -05:00
2024-02-20 14:22:51 -05:00
2024-03-12 23:08:29 -07:00
2024-02-25 12:05:08 +01:00
2024-03-07 09:36:08 +01:00
2024-02-28 19:36:39 -08:00
2024-03-10 14:38:04 -07:00
2024-03-13 18:38:13 -04:00
2024-03-06 13:04:18 -08:00
2024-03-01 08:44:54 +00:00
2024-03-09 09:14:51 -05:00
2024-03-09 09:14:50 -05:00
2024-03-26 11:07:20 -07:00
2024-03-13 12:53:53 -07:00
2024-03-13 12:53:53 -07:00
2024-03-08 12:05:10 +01:00
2024-03-03 15:06:58 -08:00
2024-02-21 16:00:03 -08:00
2024-02-20 13:36:34 +01:00
2024-03-04 20:46:18 -08:00
2024-03-04 17:25:09 +01:00
2024-02-18 18:59:59 +01:00
2024-03-06 10:52:12 +01:00