Generally speaking, I agree with you, but here the fact is that we can only monitor this
one single event "dimm-health-state" for Hyper-V Virtual NVDIMM, and the other
events are meaningless for Hyper-V Virtual NVDIMM, as they're not supported by
Hyper-V Virtual NVDIMM.
So, if the user specifies more events than just "dimm-health-state", or the
specify "dimm-health-state", it's reasonable to force monitor.event_flags
to equal to
ND_EVENT_HEALTH_STATE, and I explicitly print a warning.
The line "monitor.event_flags = ND_EVENT_HEALTH_STATE" only runs in a Linux VM
running on Hyper-V. It can't adversely affect bare metal cases. In a Linux VM on
Hyper-V, all the NVDIMMs appearing in the VM are Hyper-V Virtual NVDIMMs.
A physical NVDIMM can't be directly passed through to a VM and the hypervisors
Xen, KVM, Hyper-V, Qemu, etc.) have to virtualize it to make it available to a VM. In a
VM, the NVDIMM_FAMILY is NVDIMM_FAMILY_HYPERV only when the VM runs on
So I think we should be good. :-)
Thanks for your explanation.
I think at least we should document it into man page, so that the users could know that
their options may be modified by monitor.
Though I have a little concern about that there may be other events for Hyper-V Virtual
NVDIMM can be monitored in future...