Thread (25 messages) 25 messages, 7 authors, 2016-11-06

Re: [PATCH 0/3] iopmem : A block device for PCIe memory

From: Dave Chinner <david@fromorbit.com>
Date: 2016-10-25 21:19:10
Also in: linux-mm, linux-rdma, lkml, nvdimm

On Tue, Oct 25, 2016 at 05:50:43AM -0600, Stephen Bates wrote:
Hi Dave and Christoph

On Fri, Oct 21, 2016 at 10:12:53PM +1100, Dave Chinner wrote:
quoted
On Fri, Oct 21, 2016 at 02:57:14AM -0700, Christoph Hellwig wrote:
quoted
On Fri, Oct 21, 2016 at 10:22:39AM +1100, Dave Chinner wrote:
quoted
You do realise that local filesystems can silently change the
location of file data at any point in time, so there is no such
thing as a "stable mapping" of file data to block device addresses
in userspace?

If you want remote access to the blocks owned and controlled by a
filesystem, then you need to use a filesystem with a remote locking
mechanism to allow co-ordinated, coherent access to the data in
those blocks. Anything else is just asking for ongoing, unfixable
filesystem corruption or data leakage problems (i.e.  security
issues).
Dave are you saying that even for local mappings of files on a DAX
capable system it is possible for the mappings to move on you unless
the FS supports locking?
Yes.
Does that not mean DAX on such FS is
inherently broken?
No. DAX is accessed through a virtual mapping layer that abstracts
the physical location from userspace applications.

Example: think copy-on-write overwrites. It occurs atomically from
the perspective of userspace and starts by invalidating any current
mappings userspace has of that physical location. The location is
changes, the data copied in, and then when the locks are released
userspace can fault in a new page table mapping on the next
access....
quoted
quoted
And at least for XFS we have such a mechanism :)  E.g. I have a
prototype of a pNFS layout that uses XFS+DAX to allow clients to do
RDMA directly to XFS files, with the same locking mechanism we use
for the current block and scsi layout in xfs_pnfs.c.
Thanks for fixing this issue on XFS Christoph! I assume this problem
continues to exist on the other DAX capable FS?
Yes, but it they implement the exportfs API that supplies this
capability, they'll be able to use pNFS, too.
One more reason to consider a move to /dev/dax I guess ;-)...
That doesn't get rid of the need for sane access control arbitration
across all machines that are directly accessing the storage. That's
the problem pNFS solves, regardless of whether your direct access
target is a filesystem, a block device or object storage...

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help