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.