linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] "big hammer" for DAX msync/fsync correctness
@ 2015-10-28 22:09 Ross Zwisler
  2015-10-28 22:09 ` [PATCH 1/2] pmem: add wb_cache_pmem() to the PMEM API Ross Zwisler
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Ross Zwisler @ 2015-10-28 22:09 UTC (permalink / raw)
  To: linux-kernel
  Cc: Ross Zwisler, H. Peter Anvin, Dan Williams, Ingo Molnar,
	Thomas Gleixner, linux-nvdimm, x86, Dave Chinner, Jan Kara

This series implements the very slow but correct handling for
blkdev_issue_flush() with DAX mappings, as discussed here:

https://lkml.org/lkml/2015/10/26/116

I don't think that we can actually do the

    on_each_cpu(sync_cache, ...);

...where sync_cache is something like:

    cache_disable();
    wbinvd();
    pcommit();
    cache_enable();

solution as proposed by Dan because WBINVD + PCOMMIT doesn't guarantee that
your writes actually make it durably onto the DIMMs.  I believe you really do
need to loop through the cache lines, flush them with CLWB, then fence and
PCOMMIT.

I do worry that the cost of blindly flushing the entire PMEM namespace on each
fsync or msync will be prohibitively expensive, and that we'll by very
incentivized to move to the radix tree based dirty page tracking as soon as
possible. :)

Ross Zwisler (2):
  pmem: add wb_cache_pmem() to the PMEM API
  pmem: Add simple and slow fsync/msync support

 arch/x86/include/asm/pmem.h | 11 ++++++-----
 drivers/nvdimm/pmem.c       | 10 +++++++++-
 include/linux/pmem.h        | 22 +++++++++++++++++++++-
 3 files changed, 36 insertions(+), 7 deletions(-)

-- 
2.1.0


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2015-11-07  9:25 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-28 22:09 [PATCH 0/2] "big hammer" for DAX msync/fsync correctness Ross Zwisler
2015-10-28 22:09 ` [PATCH 1/2] pmem: add wb_cache_pmem() to the PMEM API Ross Zwisler
2015-10-28 22:09 ` [PATCH 2/2] pmem: Add simple and slow fsync/msync support Ross Zwisler
2015-10-28 23:02   ` Dan Williams
2015-10-28 22:24 ` [PATCH 0/2] "big hammer" for DAX msync/fsync correctness Jeff Moyer
2015-10-28 22:49   ` Dan Williams
2015-10-28 22:51   ` Ross Zwisler
2015-11-05 23:59     ` Dan Williams
2015-11-06  8:06       ` Thomas Gleixner
2015-11-06 16:04         ` Dan Williams
2015-11-06 17:35           ` Thomas Gleixner
2015-11-06 23:17             ` Dan Williams
2015-11-07  0:51               ` H. Peter Anvin
2015-11-07  6:50                 ` Thomas Gleixner
2015-11-07  8:12                   ` Dan Williams
2015-11-07  8:38                     ` Thomas Gleixner
2015-11-07  9:02                       ` Dan Williams
2015-11-07  9:24                         ` Thomas Gleixner
2015-11-06 20:25       ` H. Peter Anvin

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).