On Wed, May 08, 2024 at 12:35:52PM +0100, Pavel Begunkov wrote:
all these, because e.g. ttm internally does have a page pool because depending upon allocator, that's indeed beneficial. Other drm drivers have more buffer-based concepts for opportunistically memory around, usually by marking buffers that are just kept as cache as purgeable (which is a concept that goes all the way to opengl/vulkan).
Because in this case it solves nothing and helps with nothing, quite the opposite. Just as well we can ask why NVMe doesn't wrap user pages into a dmabuf while doing IO.
You seem to confused totally unrelated things.
For short-term pins, that is pin_user_pages without FOLL_LONGTERM there would never be any point in using a dmabuf as the pin is transient. For long-term pin dmabufs in the block layer absolutely make sense, and I wish io_uring would have just implemented them from the start instead of the current fixed buffers that are not quite as useful by not pre-mapping DMA and not supporting P2P.