Skip to content

memblock tests: add NUMA tests for memblock_alloc_try_nid*

Rebecca Mckeever linux-mm lkml 6 versions – Applied

Status from this message: Applied, thanks!

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v6 Latest4 patches 1 replyApplied
  2. v54 patches 1 replySuperseded
  3. v44 patches 7 repliesSuperseded
Earlier versions · 3
VersionPostedPatchesRepliesStatus
v34 patches2 repliesSuperseded
v24 patches10 repliesSuperseded
v14 patches0 repliesSuperseded

Changes in v6 from the cover letter

Based on feedback from David Hildenbrand:
PATCH 1:
- tests/common.c, tests/common.h:
+ setup_numa_memblock():
* Change nodes[] from const int to const unsigned int
* Remove "&& node_fracs[i] > 0" from the assert()
PATCH 2:
- tests/alloc_nid_api.c:
+ Update node_fractions[] type to static const unsigned int to reflect changes in PATCH 1

Patches in v6 Applied

#Subject and filesSizeRepliesApplied
1/4memblock tests: add simulation of physical memory with multiple NUMA nodestools/testing/memblock/scripts/Makefile.include tools/testing/memblock/tests/common.c tools/testing/memblock/tests/common.h+35 -20 replies
2/4memblock tests: add top-down NUMA tests for memblock_alloc_try_nid*tools/testing/memblock/tests/alloc_nid_api.c tools/testing/memblock/tests/alloc_nid_api.h tools/testing/memblock/tests/common.h+724 -110 replies
3/4memblock tests: add bottom-up NUMA tests for memblock_alloc_try_nid*tools/testing/memblock/tests/alloc_nid_api.c+568 -00 replies
4/4memblock tests: add generic NUMA tests for memblock_alloc_try_nid*tools/testing/memblock/tests/alloc_nid_api.c+197 -00 replies

Reviews trailers per patch

All 4 patches have a Reviewed-by or Acked-by.

PatchDavid Hildenbrand
1/4R-b
2/4A-b
3/4A-b
4/4A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v6 thread

Cover letter [PATCH v6 0/4] memblock tests: add NUMA tests for memblock_alloc_try_nid*

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(). This function uses a previously allocated dummy physical memory. It 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.

---
Changelog

v5 -> v6
Based on feedback from David Hildenbrand:
PATCH 1:
- tests/common.c, tests/common.h:
+ setup_numa_memblock():
* Change nodes[] from const int to const unsigned int
* Remove "&& node_fracs[i] > 0" from the assert()
PATCH 2:
- tests/alloc_nid_api.c:
+ Update node_fractions[] type to static const unsigned int to reflect changes in PATCH 1

v4 -> v5
Based on feedback from David Hildenbrand:
PATCH 1:
- tests/common.c:
+ setup_numa_memblock():
* Change nodes[] to int basis points (one hundredth of 1% or 1/10000) instead of phys_addr_t fraction denominators
* Rename parameter nodes[] to node_fracs[]
PATCH 2:
- tests/alloc_nid_api.c:
+ Update node_fractions[] to reflect changes in PATCH 1

v3 -> v4
Based on feedback from David Hildenbrand:
PATCH 1:
- tests/common.h:
+ Remove #define MEM_FACTOR
PATCH 2:
- tests/alloc_nid_api.c:
+ Add missing blank line after alloc_nid_test_flags = flags;
PATCH 2, PATCH 3, PATCH 4:
- tests/alloc_nid_api.c:
+ Define variables in new tests in a single block
+ Change "cleared memory region" to "memory region" in comment blocks for new tests

Based on feedback from Mike Rapoport:
PATCH 1:
- tests/common.c:
+ Remove node_sizes[] array
- tests/common.c, tests/common.h:
+ Combine setup_numa_memblock_generic() and setup_numa_memblock():
* Remove setup_numa_memblock(void)
* Change setup_numa_memblock_generic() to setup_numa_memblock() and remove the factor and node_cnt parameters
* Change nodes[] parameter to an array containing the
* denominators
of the fractions of MEM_SIZE contained in each node e.g., if nodes[0] = SZ_8, node 0 will contain 1/8th of
MEM_SIZE
PATCH 2:
- tests/alloc_nid_api.c:
+ Add node_fractions[] array:
* Based on values from node_sizes[] array previously in PATCH 1
* Update to fit the new nodes[] parameter of
* setup_numa_memblock()

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  | 1466 ++++++++++++++++-
 tools/testing/memblock/tests/alloc_nid_api.h  |   16 +
 tools/testing/memblock/tests/common.c         |   31 +
 tools/testing/memblock/tests/common.h         |   22 +-
 5 files changed, 1524 insertions(+), 13 deletions(-)
Signature · 1 line
2.25.1