memblock tests: add generic NUMA tests for memblock_alloc_exact_nid_raw
authorRebecca Mckeever <remckee0@gmail.com>
Mon, 7 Nov 2022 06:28:08 +0000 (00:28 -0600)
committerMike Rapoport <rppt@linux.ibm.com>
Tue, 8 Nov 2022 07:50:24 +0000 (09:50 +0200)
commit62bdc99008b372a6c5f81e6d968f3b077a1e3667
tree3fa81facb7fe6101e3b9c7a295184ff3dc024d50
parentb6df23edb1ba65b0b46788a872ddc85dfe86ccf5
memblock tests: add generic NUMA tests for memblock_alloc_exact_nid_raw

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: David Hildenbrand <david@redhat.com>
Signed-off-by: Rebecca Mckeever <remckee0@gmail.com>
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
Link: https://lore.kernel.org/r/51b14da46e6591428df3aefc5acc7dca9341a541.1667802195.git.remckee0@gmail.com
tools/testing/memblock/tests/alloc_exact_nid_api.c