On Tue, May 08, 2018 at 02:59:40AM +0000, Huaisheng HS1 Ye wrote:
> Currently in our mind, an ideal use scenario is that, we put all page caches to
> zone_nvm, without any doubt, page cache is an efficient and common cache
> implement, but it has a disadvantage that all dirty data within it would has risk
> to be missed by power failure or system crash. If we put all page caches to
NVDIMMs,
> all dirty data will be safe.
That's a common misconception. Some dirty data will still be in the
CPU caches. Are you planning on building servers which have enough
capacitance to allow the CPU to flush all dirty data from LLC to NV-DIMM?
Sorry for not being clear.
For CPU caches if there is a power failure, NVDIMM has ADR to guarantee an interrupt will
be reported to CPU, an interrupt response function should be responsible to flush all
dirty data to NVDIMM.
If there is a system crush, perhaps CPU couldn't have chance to execute this
response.
It is hard to make sure everything is safe, what we can do is just to save the dirty data
which is already stored to Pagecache, but not in CPU cache.
Is this an improvement than current?
Then there's the problem of reconnecting the page cache (which
is
pointed to by ephemeral data structures like inodes and dentries) to
the new inodes.
Yes, it is not easy.
And then you have to convince customers that what you're doing is safe
enough for them to trust it ;-)
Sure. 😊
Sincerely,
Huaisheng Ye