I made a patch set to show information of broken NVDIMM.
When a region has a broken block, user need to replace
the NVDIMM which includes the block.
However there is no information to find which DIMM module have the block.
Not only ndctl does not have such information, nvdimm driver can not
Fortunately, ACPI 6.2 has new specification of _DSM.
It is "translate spa" which can get NVDIMM handle
and DPA(Dimm Physical Address) from SPA(system Physical Addreess).
It helps for ndctl command to find broken NVDIMM.
So, This patch set includes followings.
- support Translate SPA interface,
- ndctl ask DIMM by Translate SPA and show it.
To be honest, since I'm still newbie about the internal of NVDIMM driver
and ndctl, I may misunderstand/miss something, and I feel my patch
set has likely quick hack....
Especiall, I'm not sure about the followings.
- What is the maximum size of input/output argument table for _DSM
for Translate SPA and ioctl()? It seems to depend on max # of
ways of mirroring. Since ACPI 6.2 seems not to mention it,
it depends on vedor's decision, I think....
Usually, mirroring is 2 way, but I'm not sure it is the maximum number...
- Though libndctl has many good API, I'm not sure how new APIs
should be named.
However, I think progress will be better by getting many others advises
than thinking the aboves alone. So, I hope this post is good start
to make this feature.
Anyway, please check and comment.