LFCS: Preparing Linux for nonvolatile memory devices
LFCS: Preparing Linux for nonvolatile memory devices
Posted Apr 22, 2013 11:25 UTC (Mon) by etienne (guest, #25256)Parent article: LFCS: Preparing Linux for nonvolatile memory devices
- The Linux kernel should be loaded there, with its "persistent" data
- Most libraries should be loaded and pre-linked there (lazy linking), with their "persistent" data
- Maybe also have some/all servers and possibly some applications.
The problem is to define "persistent" data, i.e. data which is necessary but will be re-used; a first approximation would be data statically allocated (i.e. the data segment but nothing from malloc()) - but then where do we put the stack: "top" part in NVM and "bottom" part in standard DDR, or stack in NVM with COW (Copy to DDR on write) pages?
The other problem is upgrading either the kernel or some libraries, how to unload a library (and its dependencies) when upgrading, how to get where a library has been loaded (at previous boot) both its physical and virtual address - and which version/SHA1 was it?
Maybe we should use NVM with a parallel and explicit NVMmalloc()/NVMfree() (because there is no way to magically do the right thing), instead of using a filesystem?
