From: Dave Chinner <david@fromorbit.com>
To: "Rudoff, Andy" <andy.rudoff@intel.com>
Cc: "Williams, Dan J" <dan.j.williams@intel.com>,
"hch@infradead.org" <hch@infradead.org>,
"jack@suse.cz" <jack@suse.cz>, "axboe@fb.com" <axboe@fb.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"xfs@oss.sgi.com" <xfs@oss.sgi.com>,
"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"viro@zeniv.linux.org.uk" <viro@zeniv.linux.org.uk>,
"linux-nvdimm@ml01.01.org" <linux-nvdimm@ml01.01.org>,
"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"linux-ext4@vger.kernel.org" <linux-ext4@vger.kernel.org>,
"Wilcox, Matthew R" <matthew.r.wilcox@intel.com>
Subject: Re: [PATCH v2 5/5] dax: handle media errors in dax_do_io
Date: Wed, 4 May 2016 11:36:57 +1000 [thread overview]
Message-ID: <20160504013657.GO18496@dastard> (raw)
In-Reply-To: <FBB11841-7DFE-4223-9973-3457034260C2@intel.com>
On Tue, May 03, 2016 at 06:30:04PM +0000, Rudoff, Andy wrote:
> >
> >And when the filesystem says no because the fs devs don't want to
> >have to deal with broken apps because app devs learn that "this is a
> >go fast knob" and data integrity be damned? It's "fsync is slow so I
> >won't use it" all over again...
> ...
> >
> >And, please keep in mind: many application developers will not
> >design for pmem because they also have to support traditional
> >storage backed by page cache. If they use msync(), the app will work
> >on any storage stack, but just be much, much faster on pmem+DAX. So,
> >really, we have to make the msync()-only model work efficiently, so
> >we may as well design for that in the first place....
>
> Both of these snippets seem to be arguing that we should make msync/fsync
> more efficient. But I don't think anyone is arguing the opposite. Is
> someone saying we shouldn't make the msync()-only model work efficiently?
Not directly. The argument presented is "we need a flag to avoid
msync, because msync is inefficient", which is followed by "look,
here's numbers that show msync() being slow, so just give us the
flag already". Experience tells me that the moment a workaround is
in place, nobody will go back and try to fix the problem that the
workaround is mitigating.
Now we know that it's the page granularity cache flushing overhead
that causes the performance differential rather than it being caused
by using msync(), we should be looking at ways to reduce the cache
flushing overhead, not completely bypassing it.
> Said another way: the common case for DAX will be applications simply
> following the POSIX model. open, mmap, msync... That will work fine
> and of course we should optimize that path as much as possible. Less
> common are latency-sensitive applications built to leverage to byte-
> addressable nature of pmem. File systems supporting this model will
> indicate it using a new ioctl that says doing CPU cache flushes is
> sufficient to flush stores to persistence.
You keep saying this whilst ignoring the repeated comments about how
this can not be guaranteed by all filesystems, and hence apps will
not be able to depend on having such behaviour present. The only
guarantee for persistence that an app will be able to rely on is
msync().
> But I don't see how that
> direction is getting turned into an argument against msync() efficiency.
Promoting a model that works around inefficiency rather than solving
it is no different to saying you don't care about fixing the
inefficiency....
I've said my piece, I'm not going to waste any more time going
around this circle again.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2016-05-04 1:36 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-30 1:59 [PATCH v2 0/5] dax: handling of media errors Vishal Verma
2016-03-30 1:59 ` [PATCH v2 1/5] block, dax: pass blk_dax_ctl through to drivers Vishal Verma
2016-03-30 4:19 ` kbuild test robot
2016-04-15 14:55 ` Jeff Moyer
2016-03-30 1:59 ` [PATCH v2 2/5] dax: fallback from pmd to pte on error Vishal Verma
2016-04-15 14:55 ` Jeff Moyer
2016-03-30 1:59 ` [PATCH v2 3/5] dax: enable dax in the presence of known media errors (badblocks) Vishal Verma
2016-04-15 14:56 ` Jeff Moyer
2016-03-30 1:59 ` [PATCH v2 4/5] dax: use sb_issue_zerout instead of calling dax_clear_sectors Vishal Verma
2016-04-15 15:18 ` Jeff Moyer
2016-03-30 1:59 ` [PATCH v2 5/5] dax: handle media errors in dax_do_io Vishal Verma
2016-03-30 3:00 ` kbuild test robot
2016-03-30 6:34 ` Christoph Hellwig
2016-03-30 6:54 ` Vishal Verma
2016-03-30 6:56 ` Christoph Hellwig
2016-04-15 16:11 ` Jeff Moyer
2016-04-15 16:54 ` Verma, Vishal L
2016-04-15 17:11 ` Jeff Moyer
2016-04-15 17:37 ` Verma, Vishal L
2016-04-15 17:57 ` Dan Williams
2016-04-15 18:06 ` Jeff Moyer
2016-04-15 18:17 ` Dan Williams
2016-04-15 18:24 ` Jeff Moyer
2016-04-15 18:56 ` Dan Williams
2016-04-15 19:13 ` Jeff Moyer
2016-04-15 19:01 ` Toshi Kani
2016-04-15 19:08 ` Toshi Kani
2016-04-20 20:59 ` Christoph Hellwig
2016-04-23 18:08 ` Verma, Vishal L
2016-04-25 8:31 ` hch
2016-04-25 15:32 ` Jeff Moyer
2016-04-26 8:32 ` hch
2016-04-25 17:14 ` Verma, Vishal L
2016-04-25 17:21 ` Dan Williams
2016-04-25 23:25 ` Dave Chinner
2016-04-25 23:34 ` Darrick J. Wong
2016-04-25 23:43 ` Dan Williams
2016-04-26 0:11 ` Dave Chinner
2016-04-26 1:45 ` Dan Williams
2016-04-26 2:56 ` Dave Chinner
2016-04-26 4:18 ` Dan Williams
2016-04-26 8:27 ` Dave Chinner
2016-04-26 14:59 ` Dan Williams
2016-04-26 15:31 ` Jan Kara
2016-04-26 17:16 ` Dan Williams
2016-04-25 23:53 ` Verma, Vishal L
2016-04-26 0:41 ` Dave Chinner
2016-04-26 14:58 ` Vishal Verma
2016-05-02 15:18 ` Jeff Moyer
2016-05-02 17:53 ` Dan Williams
2016-05-03 0:42 ` Dave Chinner
2016-05-03 1:26 ` Rudoff, Andy
2016-05-03 2:49 ` Dave Chinner
2016-05-03 18:30 ` Rudoff, Andy
2016-05-04 1:36 ` Dave Chinner [this message]
2016-05-02 23:04 ` Dave Chinner
2016-05-02 23:17 ` Verma, Vishal L
2016-05-02 23:25 ` Dan Williams
2016-05-03 1:51 ` Dave Chinner
2016-05-03 17:28 ` Dan Williams
2016-05-04 3:18 ` Dave Chinner
2016-05-04 5:05 ` Dan Williams
2016-04-26 8:33 ` hch
2016-04-26 15:01 ` Vishal Verma
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=20160504013657.GO18496@dastard \
--to=david@fromorbit.com \
--cc=akpm@linux-foundation.org \
--cc=andy.rudoff@intel.com \
--cc=axboe@fb.com \
--cc=dan.j.williams@intel.com \
--cc=hch@infradead.org \
--cc=jack@suse.cz \
--cc=linux-block@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-nvdimm@ml01.01.org \
--cc=matthew.r.wilcox@intel.com \
--cc=viro@zeniv.linux.org.uk \
--cc=xfs@oss.sgi.com \
/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).