Christoph Hellwig wrote:
> On Wed, Jun 29, 2022 at 04:31:18PM +0800, Dennis.Wu wrote:
> > reason: in the current BTT implimentation deepflush is always
> > used and deepflush is very expensive. Since customer already
> > know the ADR can protect the WPQ data in memory controller and
> > no need to call deepflush to get better performance. BTT w/o
> > deepflush, performance can improve 300%~600% with diff FIO jobs.
> > 
> > How: Add one param "no_deepflush" in the nfit module parameter.
> > if "modprob nfit no_deepflush=1", customer can get the higher
> > performance but not strict data security. Before modprob nfit,
> > you may need to "ndctl disable-region".
> 
> This goes back to my question from years ago:  why do we ever
> do this deep flush in the Linux nvdimm stack to start with?

The rationale is to push the data to smaller failure domain. Similar to
flushing disk write-caches. Otherwise, if you trust your memory power
supplies like you trust your disks then just rely on them to take care
of the data.

Otherwise, by default the kernel should default to taking as much care
as possible to push writes to the smallest failure domain possible.

Reply via email to