On Thu, May 31, 2018 at 1:19 AM, Mikulas Patocka <mpatocka(a)redhat.com> wrote:
On Wed, 30 May 2018, Dan Williams wrote:
> > Great find! Thanks for the due diligence. Feel free to add:
> > Acked-by: Dan Williams <dan.j.williams(a)intel.com>
> > ...on the reworks to unify ARM and x86.
> One more note. The side effect of not using dax_flush() is that you
> may end up flushing caches on systems where the platform has asserted
> it will take responsibility for flushing caches at power loss. If /
> when those systems become more prevalent we may want to think of a way
> to combine the non-temporal optimization and the cache-flush-bypass
> optimizations. However that is something that can wait for a later
> change beyond 4.18.
We could define memcpy_flushpmem, that falls back to memcpy or
memcpy_flushcache, depending on whether the platform flushes the caches at
power loss or not.
The problem is that some platforms only power fail protect a subset of
the physical address range, but yes, if the platform makes a global
assertion we can globally replace memcpy_flushpmem() with plain