1. A system for managing a hardware memory module, the system comprising: a memory controller configured to manage memory cells of the hardware memory module, the memory controller comprising: an error buffer module configured to store memory fault information received from the hardware memory module by the memory controller, the memory fault information reflecting a memory fault by an individual cell or memory region within a physical page of memory of the hardware memory module; and a notification module in communication with the error buffer module configured to generate a notification of the memory fault; a system software module configured to provide services and manage executing programs on a processor, wherein the system software module is configured to receive the notification of the memory fault and re-use other memory cells or memory regions in the physical page of memory having the memory fault; a notification handler configured to be activated by an interrupt when the notification of the memory fault is received; and a memory allocator configured to map a whole virtual memory page to partial physical memory pages having memory faults.