Add tests for memblock_alloc_exact_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 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 + range overlaps with multiple nodes along node boundaries, and the requested node ends before min_addr 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/2cc0883243d68ddc3faf833d2d9e86f48534c1d7.1667802195.git.remckee0@gmail.com
26 lines
491 B
C
26 lines
491 B
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
#ifndef _MEMBLOCK_ALLOC_EXACT_NID_H
|
|
#define _MEMBLOCK_ALLOC_EXACT_NID_H
|
|
|
|
#include "common.h"
|
|
|
|
int memblock_alloc_exact_nid_checks(void);
|
|
int __memblock_alloc_exact_nid_numa_checks(void);
|
|
|
|
#ifdef CONFIG_NUMA
|
|
static inline int memblock_alloc_exact_nid_numa_checks(void)
|
|
{
|
|
__memblock_alloc_exact_nid_numa_checks();
|
|
return 0;
|
|
}
|
|
|
|
#else
|
|
static inline int memblock_alloc_exact_nid_numa_checks(void)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
#endif /* CONFIG_NUMA */
|
|
|
|
#endif
|