Re: [PATCH v4 2/4] memblock tests: add top-down NUMA tests for memblock_alloc_try_nid*

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04.09.22 06:21, Rebecca Mckeever wrote:
Add tests for memblock_alloc_try_nid() and memblock_alloc_try_nid_raw()
where the simulated physical memory is set up with multiple NUMA nodes.
Additionally, all of these tests set nid != NUMA_NO_NODE. These tests are
run with a top-down allocation direction.

The tested scenarios are:

Range unrestricted:
- region can be allocated in the specific node requested:
       + there are no previously reserved regions
       + the requested node is partially reserved but has enough space
- the specific node requested cannot accommodate the request, but the
   region can be allocated in a different node:
       + there are no previously reserved regions, but node is too small
       + the requested node is fully reserved
       + the requested node is partially reserved and does not have
         enough space

Range restricted:
- region can be allocated in the specific node requested after dropping
   min_addr:
       + range partially overlaps with two different nodes, where the first
         node is the requested node
       + range partially overlaps with two different nodes, where the
         requested node ends before min_addr
- region cannot be allocated in the specific node requested, but it can be
   allocated in the requested range:
       + range overlaps with multiple nodes along node boundaries, and the
         requested node ends before min_addr
       + range overlaps with multiple nodes along node boundaries, and the
         requested node starts after max_addr
- region cannot be allocated in the specific node requested, but it can be
   allocated after dropping min_addr:
       + range partially overlaps with two different nodes, where the
         second node is the requested node

Signed-off-by: Rebecca Mckeever <remckee0@xxxxxxxxx>
---
  tools/testing/memblock/tests/alloc_nid_api.c | 694 ++++++++++++++++++-
  tools/testing/memblock/tests/alloc_nid_api.h |  16 +
  tools/testing/memblock/tests/common.h        |  18 +
  3 files changed, 717 insertions(+), 11 deletions(-)

diff --git a/tools/testing/memblock/tests/alloc_nid_api.c b/tools/testing/memblock/tests/alloc_nid_api.c
index 32b3c1594fdd..a639e9d3e098 100644
--- a/tools/testing/memblock/tests/alloc_nid_api.c
+++ b/tools/testing/memblock/tests/alloc_nid_api.c
@@ -3,6 +3,14 @@
static int alloc_nid_test_flags = TEST_F_NONE; +/*
+ * contains the denominators of the fractions of MEM_SIZE contained in each node
+ * (e.g., if node_fractions[0] = SZ_8, node 0 will contain 1/8th of MEM_SIZE)
+ */
+static const phys_addr_t node_fractions[] = {
+	SZ_4, SZ_16, SZ_8, SZ_8, SZ_16, SZ_16, SZ_4, SZ_16
+};
+

Besides that part, that I consider confusing :)

Acked-by: David Hildenbrand <david@xxxxxxxxxx>

--
Thanks,

David / dhildenb





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux