• Matt Rushton's avatar
    xen/setup: Remap Xen Identity Mapped RAM · 4fbb67e3
    Matt Rushton authored
    Instead of ballooning up and down dom0 memory this remaps the existing mfns
    that were replaced by the identity map. The reason for this is that the
    existing implementation ballooned memory up and and down which caused dom0
    to have discontiguous pages. In some cases this resulted in the use of bounce
    buffers which reduced network I/O performance significantly. This change will
    honor the existing order of the pages with the exception of some boundary
    conditions.
    
    To do this we need to update both the Linux p2m table and the Xen m2p table.
    Particular care must be taken when updating the p2m table since it's important
    to limit table memory consumption and reuse the existing leaf pages which get
    freed when an entire leaf page is set to the identity map. To implement this,
    mapping updates are grouped into blocks with table entries getting cached
    temporarily and then released.
    
    On my test system before:
    Total pages: 2105014
    Total contiguous: 1640635
    
    After:
    Total pages: 2105014
    Total contiguous: 2098904
    Signed-off-by: default avatarMatthew Rushton <mrushton@amazon.com>
    Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
    4fbb67e3
setup.c 24.2 KB