[PATCH v3 0/4] memblock tests: add NUMA tests for memblock_alloc_try_nid*

From: Rebecca Mckeever
Date: Sat Aug 27 2022 - 01:53:32 EST


These patches add additional tests for memblock_alloc_try_nid() and
memblock_alloc_try_nid_raw() that use a simulated physical
memory that is set up with multiple NUMA nodes. Additionally, most of
these tests set nid != NUMA_NO_NODE.

To set up a simulated physical memory with multiple NUMA nodes, patch 1
introduces setup_numa_memblock_generic() and setup_numa_memblock().
These functions use a previously allocated dummy physical memory. They
can be used in place of setup_memblock() in tests that need to simulate
a NUMA system.

These tests are run twice, once for memblock_alloc_try_nid() and once
for memblock_alloc_try_nid_raw(), so that both functions are tested with
the same set of tests. When the tests run memblock_alloc_try_nid(), they
test that the entire memory region is zero. When the tests run
memblock_alloc_try_nid_raw(), they test that the entire memory region is
nonzero.

Note:
This patch set depends on the following patch set:
https://lore.kernel.org/all/cover.1661578349.git.remckee0@xxxxxxxxx/

---
Changelog

v2 -> v3
PATCH 2, PATCH 3, PATCH 4:
- tests/alloc_nid_api.c:
+ Edits for consistency between tests and test naming styles:
* Change "numa_top_down" to "top_down_numa"
* Change "numa_bottom_up" to "bottom_up_numa"
* Move "generic" to immediately before "check"
* alloc_try_nid_bottom_up_numa_small_node_check() and
alloc_try_nid_bottom_up_numa_node_reserved_check():
- Separate size definition from its declaration

Updates based on changes to the dependent patch set noted above:
PATCH 2, PATCH 3, PATCH 4:
- tests/alloc_nid_api.c:
+ get_func_testing():
* Rename to get_memblock_alloc_try_nid_name().
+ Update calls to verify_mem_content() to assert_mem_content().

v1 -> v2
Updates based on changes to the dependent patch set noted above:
PATCH 2, PATCH 3, PATCH 4:
- tests/alloc_nid_api.c:
+ Update calls to verify_mem_content() to include the flags parameter
required by the new, common verify_mem_content() function.
---

Rebecca Mckeever (4):
memblock tests: add simulation of physical memory with multiple NUMA
nodes
memblock tests: add top-down NUMA tests for memblock_alloc_try_nid*
memblock tests: add bottom-up NUMA tests for memblock_alloc_try_nid*
memblock tests: add generic NUMA tests for memblock_alloc_try_nid*

.../testing/memblock/scripts/Makefile.include | 2 +-
tools/testing/memblock/tests/alloc_nid_api.c | 1491 ++++++++++++++++-
tools/testing/memblock/tests/alloc_nid_api.h | 16 +
tools/testing/memblock/tests/common.c | 38 +
tools/testing/memblock/tests/common.h | 27 +-
5 files changed, 1561 insertions(+), 13 deletions(-)

--
2.25.1