Various approaches for demoting a memory page are described. In one
approach, a first new page is established from a subpage of a base page
in response to a request to demote a specified subpage. The size of the
first new page is selected from a plurality of page sizes. For each
portion of the base page less the first new page, the portion is divided
into one or more pages of a selected size. The selected size for the
pages is a largest of the plurality of page sizes that is less than or
equal to the size of the portion. If the new one or more pages do not
encompass the entire portion, a new feasible, largest of the sizes is
selected and the part of the portion not encompassed is further divided
into one or more pages.