Re: [LSF/MM TOPIC] Discuss least bad options for resolving longterm-GUP usage by RDMA

From: Matthew Wilcox
Date: Mon Feb 11 2019 - 13:40:48 EST


On Mon, Feb 11, 2019 at 11:26:49AM -0700, Jason Gunthorpe wrote:
> On Mon, Feb 11, 2019 at 10:19:22AM -0800, Ira Weiny wrote:
> > What if user space then writes to the end of the file with a regular write?
> > Does that write end up at the point they truncated to or off the end of the
> > mmaped area (old length)?
>
> IIRC it depends how the user does the write..
>
> pwrite() with a given offset will write to that offset, re-extending
> the file if needed
>
> A file opened with O_APPEND and a write done with write() should
> append to the new end
>
> A normal file with a normal write should write to the FD's current
> seek pointer.
>
> I'm not sure what happens if you write via mmap/msync.
>
> RDMA is similar to pwrite() and mmap.

A pertinent point that you didn't mention is that ftruncate() does not change
the file offset. So there's no user-visible change in behaviour.