In the above example, there was a free page on node_0 that had already been zeroed that was available to be mapped to GPA 3. In some embodiments, if there are no free zeroed pages in the “zeroed” list, then the hyper-kernel determines whether there are any real physical pages on node_0 that are to be zeroed (and are listed in the “to be zeroed” list 2108). If so, then a real physical page in the “to be zeroed” list is allocated on demand and has zeroes written into it. The newly allocated page with zeroes written into it may then be used and mapped to GPA 3 for overwriting with 1's. The real physical page is removed from the “to be zeroed” list. In some embodiments, prior to being mapped, the zeroed page is then placed in the zeroed list, where it is then removed from the zeroed list. In other embodiments, the page that was allocated and zeroed on demand is directly mapped to the dormant guest physical address, without being placed on the zeroed list.
In some cases, there may be no free real physical pages in the “Zeroed” list on node_0, as well as no real physical pages on the “to be zeroed” list, where the node_0 has no free space on the first node (all of its real pages of physical memory are in use). There are various strategies for handling the stall, where the selected strategy may depend on the evaluation of cost functions and machine learning observations of the system.