On 1/16/20 1:18 AM, Dan Williams wrote:
On Wed, Jan 15, 2020 at 9:56 AM Aneesh Kumar K.V
<aneesh.ku...@linux.ibm.com> wrote:
On 1/15/20 11:05 PM, Jeff Moyer wrote:
"Aneesh Kumar K.V" <aneesh.ku...@linux.ibm.com> writes:
diff --git a/include/linux/libnvdimm.h b/include/linux/libnvdimm.h
index f2a33f2e3ba8..9126737377e1 100644
--- a/include/linux/libnvdimm.h
+++ b/include/linux/libnvdimm.h
@@ -52,9 +52,9 @@ enum {
*/
ND_REGION_PERSIST_CACHE = 1,
/*
- * Platform provides mechanisms to automatically flush outstanding
- * write data from memory controler to pmem on system power loss.
- * (ADR)
+ * Platform provides instructions to flush data such that on completion
+ * of the instructions, data flushed is guaranteed to be on pmem even
+ * in case of a system power loss.
I find the prior description easier to understand.
I was trying to avoid the term 'automatically, 'memory controler' and
ADR. Can I update the above as
I can understand avoiding the very x86-specific "ADR," but is memory
controller not accurate for your platform?
/*
* Platform provides mechanisms to flush outstanding write data
* to pmem on system power loss.
*/
That's way too broad. :) The comments are describing the persistence
domain. i.e. if you get data to $HERE, it is guaranteed to make it out
to stable media.
With technologies like OpenCAPI, we possibly may not want to call them
"memory controller"? In a way platform mechanism will flush them such
that on power failure, it is guaranteed to be on the pmem media. But
should we call these boundary "memory_controller"? May be we can
consider "memory controller" an overloaded term there. Considering we
are calling this as memory_controller for application to parse via
sysfs, may be the documentation can also carry the same term.
I don't see how OpenCAPI or any other transport has any bearing on the
"memory_controller" term. It's still a controller of persistent memory
and it needs to have the write data received at its buffers / queue to
ensure that the data gets persisted, or, as in the cpu_cache case,
some other agent takes responsibility for shuttling pending writes
that have hit the cache out over the transport to be persisted.
Agreed. I want to make sure we document that details correctly. It is a
controller of persistent memory and in some cases, there is no reserve
power available to keep things in self-refresh mode and to flush things
automatically. The platform provided mechanism will ensure the write
data is in the pmem media.
Should the later have a persistence_domain value "pmem media" ? Even
then I am not sure how applications are supposed to use this information.
IMHO what is important for application is to differentiate between
whether a platform specific flush mechanism is needed or not. Hence was
trying to keep this as two value property. IS there any other detail
application is supposed to infer from this property?
-aneesh
_______________________________________________
Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org
To unsubscribe send an email to linux-nvdimm-le...@lists.01.org