• Rebecca Mckeever's avatar
    memblock tests: add generic NUMA tests for memblock_alloc_exact_nid_raw · 62bdc990
    Rebecca Mckeever authored
    Add tests for memblock_alloc_exact_nid_raw() where the simulated physical
    memory is set up with multiple NUMA nodes. Additionally, all but one of
    these tests set nid != NUMA_NO_NODE. All tests are run for both top-down
    and bottom-up allocation directions.
    
    The tested scenarios are:
    
    Range unrestricted:
    - region cannot be allocated:
          + there are no previously reserved regions, but requested node is
            too small
          + the requested node is fully reserved
          + the requested node is partially reserved and does not have
            enough space
          + none of the nodes have enough memory to allocate the region
    
    Range restricted:
    - region can be allocated in the specific node requested without
      dropping min_addr:
          + the range fully overlaps with the node, and there are adjacent
            reserved regions
    - region cannot be allocated:
          + range partially overlaps with two different nodes, where the
            second node is the requested node
          + range overlaps with multiple nodes along node boundaries, and
            the requested node starts after max_addr
          + nid is set to NUMA_NO_NODE and the total range can fit the
            region, but the range is split between two nodes and everything
            else is reserved
    Acked-by: default avatarDavid Hildenbrand <david@redhat.com>
    Signed-off-by: default avatarRebecca Mckeever <remckee0@gmail.com>
    Signed-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
    Link: https://lore.kernel.org/r/51b14da46e6591428df3aefc5acc7dca9341a541.1667802195.git.remckee0@gmail.com
    62bdc990
alloc_exact_nid_api.c 33.3 KB