Patent ID: 7827374

Claim:
A machine-implemented method for managing memory, comprising: allocating memory for a hardware mapping entry (HME) cluster of entries; storing, in the HME cluster of entries, a mapping between a virtual page and a physical page in a source HME cluster entry; selecting the source HME cluster entry from the HME cluster of entries; determining a location of the virtual page to be in a kernel virtual memory address space; marking the mapping as suspended and valid after determining the location of the virtual page; receiving a request from a process to access the physical page after marking the mapping; instructing the process to wait until the mapping is marked as unsuspended; dynamically allocating memory for a destination HME cluster entry; copying the mapping from the source HME cluster to the destination HME cluster in order to relocate the mapping from the source HME cluster to the destination HME cluster; inserting the destination HME cluster entry into the HME cluster of entries; removing the source HME cluster entry from the HME cluster of entries; marking the mapping as unsuspended and valid; and redirecting the request from the process to access the physical page to the destination HME cluster entry.