> The pages backing a DMA-buf are not allowed to move (at least not without a
> patch set I'm currently working on), but for certain MM operations to work
> correctly you must be able to modify the page tables entries and move the
> pages backing them around.
> For example try to use fork() with some copy on write pages with this
> approach. You will find that you have only two options to correctly handle
The fork() issue should go away with shared memory pages (no cow).
I guess this is the reason why vgem is internally backed by shmem.
Hmm. So I could try to limit the udmabuf driver to shmem too (i.e.
have the ioctl take a shmem filehandle and offset instead of a virtual
But maybe it is better then to just extend vgem, i.e. add support to
create gem objects from existing shmem.