From: Jeff Moyer <jmoyer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Jan Kara <jack-AlSwsSmVLrQ@public.gmane.org>
Cc: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org,
linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-xfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-ext4-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: Problems with VM_MIXEDMAP removal from /proc/<pid>/smaps
Date: Wed, 17 Oct 2018 16:23:50 -0400 [thread overview]
Message-ID: <x49h8hkfhk9.fsf@segfault.boston.devel.redhat.com> (raw)
In-Reply-To: <20181002142959.GD9127-4I4JzKEfoa/jFM9bn6wA6Q@public.gmane.org> (Jan Kara's message of "Tue, 2 Oct 2018 16:29:59 +0200")
Jan Kara <jack-AlSwsSmVLrQ@public.gmane.org> writes:
> [Added ext4, xfs, and linux-api folks to CC for the interface discussion]
>
> On Tue 02-10-18 14:10:39, Johannes Thumshirn wrote:
>> On Tue, Oct 02, 2018 at 12:05:31PM +0200, Jan Kara wrote:
>> > Hello,
>> >
>> > commit e1fb4a086495 "dax: remove VM_MIXEDMAP for fsdax and device dax" has
>> > removed VM_MIXEDMAP flag from DAX VMAs. Now our testing shows that in the
>> > mean time certain customer of ours started poking into /proc/<pid>/smaps
>> > and looks at VMA flags there and if VM_MIXEDMAP is missing among the VMA
>> > flags, the application just fails to start complaining that DAX support is
>> > missing in the kernel. The question now is how do we go about this?
>>
>> OK naive question from me, how do we want an application to be able to
>> check if it is running on a DAX mapping?
>
> The question from me is: Should application really care? After all DAX is
> just a caching decision. Sure it affects performance characteristics and
> memory usage of the kernel but it is not a correctness issue (in particular
> we took care for MAP_SYNC to return EOPNOTSUPP if the feature cannot be
> supported for current mapping). And in the future the details of what we do
> with DAX mapping can change - e.g. I could imagine we might decide to cache
> writes in DRAM but do direct PMEM access on reads. And all this could be
> auto-tuned based on media properties. And we don't want to tie our hands by
> specifying too narrowly how the kernel is going to behave.
For read and write, I would expect the O_DIRECT open flag to still work,
even for dax-capable persistent memory. Is that a contentious opinion?
So, what we're really discussing is the behavior for mmap. MAP_SYNC
will certainly ensure that the page cache is not used for writes. It
would also be odd for us to decide to cache reads. The only issue I can
see is that perhaps the application doesn't want to take a performance
hit on write faults. I haven't heard that concern expressed in this
thread, though.
Just to be clear, this is my understanding of the world:
MAP_SYNC
- file system guarantees that metadata required to reach faulted-in file
data is consistent on media before a write fault is completed. A
side-effect is that the page cache will not be used for
writably-mapped pages.
and what I think Dan had proposed:
mmap flag, MAP_DIRECT
- file system guarantees that page cache will not be used to front storage.
storage MUST be directly addressable. This *almost* implies MAP_SYNC.
The subtle difference is that a write fault /may/ not result in metadata
being written back to media.
and this is what I think you were proposing, Jan:
madvise flag, MADV_DIRECT_ACCESS
- same semantics as MAP_DIRECT, but specified via the madvise system call
Cheers,
Jeff
next prev parent reply other threads:[~2018-10-17 20:23 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20181002100531.GC4135@quack2.suse.cz>
[not found] ` <20181002121039.GA3274@linux-x5ow.site>
[not found] ` <20181002121039.GA3274-qw2SdCWA0PpjqqEj2zc+bA@public.gmane.org>
2018-10-02 14:29 ` Problems with VM_MIXEDMAP removal from /proc/<pid>/smaps Jan Kara
[not found] ` <20181002142959.GD9127-4I4JzKEfoa/jFM9bn6wA6Q@public.gmane.org>
2018-10-02 14:37 ` Christoph Hellwig
[not found] ` <20181002143713.GA19845-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2018-10-02 14:44 ` Johannes Thumshirn
[not found] ` <20181002144412.GC4963-qw2SdCWA0PpjqqEj2zc+bA@public.gmane.org>
2018-10-02 14:52 ` Christoph Hellwig
[not found] ` <20181002145206.GA10903-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2018-10-02 15:31 ` Jan Kara
[not found] ` <20181002153100.GG9127-4I4JzKEfoa/jFM9bn6wA6Q@public.gmane.org>
2018-10-02 20:18 ` Dan Williams
[not found] ` <CAPcyv4j0tTD+rENqFExA68aw=-MmtCBaOe1qJovyrmJC=yBg-Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-10-03 12:50 ` Jan Kara
[not found] ` <20181003125056.GA21043-4I4JzKEfoa/jFM9bn6wA6Q@public.gmane.org>
2018-10-03 14:38 ` Dan Williams
[not found] ` <CAPcyv4jfV10yuTiPg6ijsPRRL2-c_48ovfpU5TK1Zu7BWnfk3g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-10-03 15:06 ` Jan Kara
[not found] ` <20181003150658.GC24030-4I4JzKEfoa/jFM9bn6wA6Q@public.gmane.org>
2018-10-03 15:13 ` Dan Williams
[not found] ` <CAPcyv4iJvN6_Cf6tw=5a=Uh99LfMFKU7n8QkGcz1ZaxL0Oi-3w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-10-03 16:44 ` Jan Kara
[not found] ` <20181003164407.GK24030-4I4JzKEfoa/jFM9bn6wA6Q@public.gmane.org>
2018-10-03 21:13 ` Dan Williams
2018-10-04 10:04 ` Johannes Thumshirn
2018-10-02 15:07 ` Jan Kara
2018-10-17 20:23 ` Jeff Moyer [this message]
[not found] ` <x49h8hkfhk9.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
2018-10-18 0:25 ` Dave Chinner
2018-10-18 14:55 ` Jan Kara
[not found] ` <20181018145555.GS23493-4I4JzKEfoa/jFM9bn6wA6Q@public.gmane.org>
2018-10-19 0:43 ` Dave Chinner
2018-10-30 6:30 ` Dan Williams
[not found] ` <CAPcyv4ixoAh7HEMfm+B4sRDx1Qwm6SHGjtQ+5r3EKsxreRydrA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-10-30 22:49 ` Dave Chinner
2018-10-30 22:59 ` Dan Williams
2018-10-31 5:59 ` y-goto-LMvhtfratI1BDgjK7y7TUQ
[not found] ` <TYAPR01MB32619CCA488DD0DA86EDB17E90CD0-0qPFe2CvyVSThio5wsivRXcolHNk5qUtvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-11-01 23:00 ` Dave Chinner
2018-11-02 1:43 ` y-goto-LMvhtfratI1BDgjK7y7TUQ
2018-10-18 21:05 ` Jeff Moyer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=x49h8hkfhk9.fsf@segfault.boston.devel.redhat.com \
--to=jmoyer-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=jack-AlSwsSmVLrQ@public.gmane.org \
--cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-ext4-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org \
--cc=linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org \
--cc=linux-xfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).