[PATCH v4 0/5] memblock tests: add tests for memblock_alloc_exact_nid_raw

Rebecca Mckeever posted 5 patches 3 years, 5 months ago
tools/testing/memblock/Makefile               |    2 +-
tools/testing/memblock/TODO                   |    7 +-
tools/testing/memblock/main.c                 |    2 +
.../memblock/tests/alloc_exact_nid_api.c      | 1113 +++++++++++++++++
.../memblock/tests/alloc_exact_nid_api.h      |   25 +
tools/testing/memblock/tests/alloc_nid_api.c  |  546 ++++----
tools/testing/memblock/tests/alloc_nid_api.h  |    1 +
tools/testing/memblock/tests/common.h         |    2 +
8 files changed, 1428 insertions(+), 270 deletions(-)
create mode 100644 tools/testing/memblock/tests/alloc_exact_nid_api.c
create mode 100644 tools/testing/memblock/tests/alloc_exact_nid_api.h
[PATCH v4 0/5] memblock tests: add tests for memblock_alloc_exact_nid_raw
Posted by Rebecca Mckeever 3 years, 5 months ago
These patches add tests for memblock_alloc_exact_nid_raw(). There are two
sets of tests: range tests and NUMA tests. The range tests use a normal
(i.e., UMA) simulated physical memory and set the nid to NUMA_NO_NODE. The
NUMA tests use a simulated physical memory that is set up with multiple
NUMA nodes. Additionally, most of the NUMA tests set nid != NUMA_NO_NODE.

For the range tests, the TEST_F_EXACT flag is used to run the same set of
range tests used for memblock_alloc_try_nid_raw(). The NUMA tests have the
same setup as the corresponding test for memblock_alloc_try_nid_raw(), but
several of the memblock_alloc_exact_nid_raw() tests fail to allocate
memory in setups where the memblock_alloc_try_nid_raw() test would
allocate memory. Also, some memblock_alloc_exact_nid_raw() tests drop the
lower limit of the requested range in order to allocate within the
requested node, but the same setup in a memblock_alloc_try_nid_raw() test
allocates within the requested range.

---
Changelog

v3 -> v4
Based on feedback from David Hildenbrand:
PATCH 1:
- alloc_nid_api.c:
    + Add assert to ensure that TEST_F_EXACT flag only occurs with
      TEST_F_RAW flag

v2 -> v3
Based on feedback from David Hildenbrand:
PATCH 1:
- alloc_nid_api.c, alloc_nid_api.h, common.h:
    + Add TEST_F_EXACT flag so that tests in alloc_nid_api.c can be run
      with that flag to test memblock_alloc_exact_nid_raw()
- alloc_exact_nid_api.c:
    + Update to run range tests in alloc_nid_api.c with TEST_F_EXACT flag
      instead of using a separate set of tests
- alloc_nid_api.c:
    + Rename tests and other functions by removing "_try" so that the
      function names are general enough to refer to any of the
      memblock_alloc_*nid*() functions of the memblock API

v1 -> v2
PATCH 0:
- Add missing memblock_alloc_exact_nid_raw to subject line
---

Rebecca Mckeever (5):
  memblock tests: introduce range tests for memblock_alloc_exact_nid_raw
  memblock tests: add top-down NUMA tests for
    memblock_alloc_exact_nid_raw
  memblock tests: add bottom-up NUMA tests for
    memblock_alloc_exact_nid_raw
  memblock tests: add generic NUMA tests for
    memblock_alloc_exact_nid_raw
  memblock tests: remove completed TODO item

 tools/testing/memblock/Makefile               |    2 +-
 tools/testing/memblock/TODO                   |    7 +-
 tools/testing/memblock/main.c                 |    2 +
 .../memblock/tests/alloc_exact_nid_api.c      | 1113 +++++++++++++++++
 .../memblock/tests/alloc_exact_nid_api.h      |   25 +
 tools/testing/memblock/tests/alloc_nid_api.c  |  546 ++++----
 tools/testing/memblock/tests/alloc_nid_api.h  |    1 +
 tools/testing/memblock/tests/common.h         |    2 +
 8 files changed, 1428 insertions(+), 270 deletions(-)
 create mode 100644 tools/testing/memblock/tests/alloc_exact_nid_api.c
 create mode 100644 tools/testing/memblock/tests/alloc_exact_nid_api.h

-- 
2.34.1
Re: [PATCH v4 0/5] memblock tests: add tests for memblock_alloc_exact_nid_raw
Posted by Mike Rapoport 3 years, 5 months ago
On Mon, Nov 07, 2022 at 12:28:04AM -0600, Rebecca Mckeever wrote:
> These patches add tests for memblock_alloc_exact_nid_raw(). There are two
> sets of tests: range tests and NUMA tests. The range tests use a normal
> (i.e., UMA) simulated physical memory and set the nid to NUMA_NO_NODE. The
> NUMA tests use a simulated physical memory that is set up with multiple
> NUMA nodes. Additionally, most of the NUMA tests set nid != NUMA_NO_NODE.
> 
> For the range tests, the TEST_F_EXACT flag is used to run the same set of
> range tests used for memblock_alloc_try_nid_raw(). The NUMA tests have the
> same setup as the corresponding test for memblock_alloc_try_nid_raw(), but
> several of the memblock_alloc_exact_nid_raw() tests fail to allocate
> memory in setups where the memblock_alloc_try_nid_raw() test would
> allocate memory. Also, some memblock_alloc_exact_nid_raw() tests drop the
> lower limit of the requested range in order to allocate within the
> requested node, but the same setup in a memblock_alloc_try_nid_raw() test
> allocates within the requested range.

Applied, thanks!

-- 
Sincerely yours,
Mike.