On Mon, Jan 27, 2025 at 04:02:41PM +0000, Matthew Wilcox wrote: > Now, since postgres is using io_uring, perhaps there could be a path > which registers the memory with the iouring (doing the refcount/pincount > dance once), and then use that pinned memory for each I/O. Maybe that > already exists; I'm not keeping up with io_uring development and I can't > seem to find any documentation on what things like io_provide_buffers() > actually do. Yes, io_uring does hqve this capability. Here's a doc describing the liburing function that sets it up, and explains how to reference it in subsequent IO: https://unixism.net/loti/ref-liburing/advanced_usage.html#c.io_uring_register_buffers