On Thu, 2015-05-28 at 21:19 -0700, H. Peter Anvin wrote:
On 05/28/2015 05:02 PM, Dan Williams wrote:
>
> Hmm, yes, but I believe Ross (on vacation now) was following the
> precedent set by commit cd8ddf1a2800 "x86: clflush_page_range needs
> mfence" whereby the api handles all necessary fencing internally.
> Shall we introduce something like __unordered_clflush_cache_range()
> for arch_persistent_flush() to use with the understanding it will
> be
> following up with the wmb() in arch_persistent_sync()?
>
Are we ever going to have arch_persistent_sync() without
arch_persistent_flush()?
However, thinking about it, it would be more efficient to do all
flushes
first and then have a single barrier.
Yep, we have arch_persistent_sync() without arch_persistent_flush() in
both our PMEM and ND_BLK write paths. These use arch_persistent_copy() to get NT stores,
so they don't need to manually flush/write-back
before doing a persistent_sync().