Detecting and recovering a corrupted non-volatile random-access memory
An information handling system includes a memory manager that may detect corruption of a non-volatile random-access memory, and perform a recovery process of the non-volatile random-access memory that includes determining whether a header of the non-volatile random-access memory is corrupted. If the header is not corrupted, then a data region associated with the header may be recovered from recovery data values in a spare store in the non-volatile random-access memory. If the header is corrupted, then the header and the data region may be recovered from default data values.
1. A method comprising:
detecting, by a processor, a corruption of a non-volatile random-access memory of an information handling system;
performing a recovery process of the non-volatile random-access memory that includes:
determining whether a header of the non-volatile random-access memory is corrupted; and
if the header is corrupted, then initializing system properties and regenerating the header based on a previous snapshot; and
rebooting the information handling system.
2. The method of claim 1 , further comprising notifying a storage component to reset memory variables to default values.
3. The method of claim 1 , wherein the recovery process further includes resetting complementary metal-oxide-semiconductor/embedded controller properties.
4. The method of claim 3 , wherein the resetting of the complementary metal-oxide-semiconductor/embedded controller properties is for aligning other memory variables to default values.
5. The method of claim 1 , wherein the recovery process is performed after failing to initialize a variable service.
6. The method of claim 1 , wherein the performing of the recovery process further includes regenerating a data region from snapshots taken of the data region prior to the corruption.
7. The method of claim 1 , wherein the corruption is detected after a reclaim operation of the non-volatile random-access memory.
8. An information handling system, comprising:
a non-volatile random-access memory device; and
a memory manager interfaced with the non-volatile random-access memory device, the memory manager configured to:
detect corruption of the non-volatile random-access memory device;
perform a recovery process of the non-volatile random-access memory device that includes:
determining whether a header of the non-volatile random-access memory device is corrupted; and
if the header is not corrupted, then initializing system properties and regenerating the header based on a previous snapshot; and
reboot the information handling system.
9. The information handling system of claim 8 , wherein the memory manager is further configured to notify a storage component to reset memory variables to default values.
10. The information handling system of claim 8 , wherein the memory manager is further configured to reset complementary metal-oxide-semiconductor/embedded controller properties.
11. The information handling system of claim 10 , wherein the reset of the complementary metal-oxide-semiconductor/embedded controller properties is to align other memory variables to default values.
12. The information handling system of claim 8 , wherein the recovery process is performed after a variable service failed to initialize.
13. The information handling system of claim 12 , wherein the recovery process further includes to regenerate a data region from bit patterns from snapshots taken of the data region prior to the corruption.
14. A non-transitory computer-readable medium including code that when executed performs a method, the method comprising:
detecting corruption of a non-volatile random-access memory of an information handling system;
recovering the non-volatile random-access memory that includes:
determining whether a header of the non-volatile random-access memory is corrupted; and
if the header is corrupted, then initializing system properties and regenerating the header based on a previous snapshot; and
rebooting the information handling system.
15. The method of claim 14 , wherein the method further comprises notifying a storage component to reset memory variables to default values.
16. The method of claim 14 , wherein the recovering further includes resetting complementary metal-oxide-semiconductor/embedded controller properties.
17. The method of claim 16 , wherein the resetting of the complementary metal-oxide-semiconductor/embedded controller properties is for aligning other memory variables to default values.
18. The method of claim 14 , wherein the recovering is performed after failing to initialize a variable service.
19. The method of claim 14 , wherein the recovering further includes regenerating a data region from bit patterns from snapshots taken of the data region prior to the corruption.
20. The method of claim 14 , wherein the corruption is detected after a reclaim operation of the non-volatile random-access memory.