memblock tests: Add memblock_alloc_try_nid tests for top down
authorKarolina Drobnik <karolinadrobnik@gmail.com>
Mon, 28 Feb 2022 14:46:49 +0000 (15:46 +0100)
committerMike Rapoport <rppt@linux.ibm.com>
Wed, 9 Mar 2022 13:54:04 +0000 (15:54 +0200)
commit8f98435d674e5b7ec382914d2755849f5a95754b
tree9c41fbcd478a4860530f88bf9bd82a55bb5f3177
parent0ac06631a3bcdaed497f7b8abccf405f9eb8e0bd
memblock tests: Add memblock_alloc_try_nid tests for top down

Add tests for memblock_alloc_try_nid for top down allocation direction.
As the definition of this function is pretty close to the core
memblock_alloc_range_nid, the test cases implemented here cover most of
the code paths related to the memory allocations.

The tested scenarios are:
  - Region can be allocated within the requested range (both with aligned
    and misaligned boundaries)
  - Region can be allocated between two already existing entries
  - Not enough space between already reserved regions
  - Memory range is too narrow but memory can be allocated before
    the maximum address
  - Edge cases:
      + Minimum address is below memblock_start_of_DRAM()
      + Maximum address is above memblock_end_of_DRAM()

Add checks for both allocation directions:
  - Region starts at the min_addr and ends at max_addr
  - Maximum address is too close to the beginning of the available
    memory
  - Memory at the range boundaries is reserved but there is enough space
    to allocate a new region

Signed-off-by: Karolina Drobnik <karolinadrobnik@gmail.com>
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
Link: https://lore.kernel.org/r/d6c282e0f9f62c15bf74c216214604764232d637.1646055639.git.karolinadrobnik@gmail.com
tools/testing/memblock/Makefile
tools/testing/memblock/main.c
tools/testing/memblock/tests/alloc_nid_api.c [new file with mode: 0644]
tools/testing/memblock/tests/alloc_nid_api.h [new file with mode: 0644]