I hope Dan and Jerry also reply but I have recently started looking at
this too and have some comments below.
On 7/27/2016 6:35 AM, Johannes Thumshirn wrote:
Hi Dan and Jerry,
I'm currently looking into SMART data retrieval on HPE NVDIMMs.
After the first obstacle (like getting cat
/sys/class/nd/ndctl0/device/nmem0/commands reutrn smart so ndctl will issue
the ioctl) I ran into a rather nasty problem. According to  HPEDIMMs
need the input buffer specially crafted for SMART data, according to 
Intel DIMMs don't.
It is unfortunate that the DSM functions are different for different NVDIMM
types. There is a desire for standardization but for now this is what we have.
Adding translation functions for the DIMMs accepted commands is one
should be more or less trivial for all DIMMs (I'll post an RFC patch as soon
as Linus merged Dan's 4.8 pull request so I can rebase it) but doing this
type of conversation for each and every command for every defined vendor
family for both the input and output buffers will drive us all mad I guess.
In my opinion, I don't think we need ndctl to be able to issue every function
and decode every response but I would like to see the --health option to report
the "SMART and Health" data reported by functions 1 and 2. I could be wrong
but I think that's all it does for the NVDIMMs that use the Intel example DSM.
There are functions in libndctl that issue other DSMs but I don't think
those aren't used by the ndctl command itself. Whether we need the other
functions in libndctl to work with non-Intel DSM devices is still TBD.
Especially from the distribution's POV I'm not to keen on
with some new NVDIMM family and we would need to re-implement all the
translators again. Adding a new ID is one thing but translation tables are a
totally different story.
So the question is have I overlooked something and there is a clean and easy
solution to this problem, or not.
I don't think it's clean and easy today. I think it needs to be made a bit
more modular to handle the NVDIMMs that have DSMs implemented using the
@Jerry have you tested SMART data retrieval with ndctl? Did it work
I tried it and it does not work.