For performance reasons during system updates/reboots we do not erase memory content. The memory content is erased only on power cycle, which we do not do in production.
Once we hot-remove the memory, we convert it back into DAXFS PMEM device, format it into EXT4, mount it as DAX file system, and allow programs to serialize their states to it so they can read it back after the reboot.
During startup we mount pmem, programs read the state back, and after that we hotplug the PMEM DAX as a movable zone. This way during normal runtime we have 8G available to programs.
Thanks for sharing the workflow - while it sounds somewhat sub-optimal, I guess it gets the job done using existing tools / mechanisms.
(I remember the persistent tmpfs over kexec RFC, which tries to tackle it by introducing something new)