From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A1F18218E91 for ; Tue, 14 Apr 2026 15:14:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776179650; cv=none; b=KHsHTDn3ktn4XQAKXxatS6EcKlOdpBrpvBTsvL9QcsAyCsEEQTPzJlng0e7FzmyIy+4GI16yY6dqU/+uq+xp5MwGBHdm+5CtQ1hRKQ2g8MTwbk7Bud80VEDQQS3Sam+cqUcnFvvQjX0eSindVRKo9Pubfk4GZHiB518Fyx/q+cE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776179650; c=relaxed/simple; bh=0ob26VwLXMWHWDk+TZoajRbCcn/0UQ7s8UqtxLBZuJQ=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=UUfKizyHpswoPvcNuCb6d4bmJ8FRnGtEM5H+QIgcJpx6i7e+NvVOvaytidN6t3G8emi684FuFzaAHY2mUqkqWcwUt8gUvTzrqNVPFC7J5UQDxr60nk1YN8rffKq+9OZ6t0xmkui2Wi3k9WPeEifE7oR+9V6yEpQRIoNYa2to8S8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mEymB5dr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mEymB5dr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 64988C19425; Tue, 14 Apr 2026 15:14:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776179650; bh=0ob26VwLXMWHWDk+TZoajRbCcn/0UQ7s8UqtxLBZuJQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=mEymB5dr63U0EbprW0BwqEHA0dNm9M/HMCIegREI7w0BoCfXtLg9q013mcIPXQM8l l2GtF4L0FVgpCJ5Ek4LRq1vxjWnypK8yC2LIPQ6qE56u8Ayqg6l15PP33//IcTIUVC UnWIATP4zf1t1tfGAgC2UpJ279ZXLCrCBvePaDZa2tpOlJrwF/q1vKxE2W1JYa3IhD cqYKh2/SyqwvYoqS5wD4BxPVud9d1NWMfECvFKvc/tBwtX1SGExe2Paw+O4TQ5dkfY 1ONtuyAsXmajUGl0P1SwGf/Hd96iOTJgdOI6qR5GsAIOQszM4YXCc52amdZnc2EiXh Oa8F+s4oO4Wow== Date: Tue, 14 Apr 2026 18:14:05 +0300 From: Mike Rapoport To: priyanshukumarpu@gmail.com Cc: akpm@linux-foundation.org, changyuanl@google.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] tools/testing/memblock: fix stale NUMA reservation tests Message-ID: References: <20260413091458.774770-1-priyanshukumarpu@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260413091458.774770-1-priyanshukumarpu@gmail.com> Hi, On Mon, Apr 13, 2026 at 09:14:58AM +0000, priyanshukumarpu@gmail.com wrote: > From: Priyanshu Kumar > > memblock allocations now reserve memory with MEMBLOCK_RSRV_KERN and, > on NUMA configurations, record the requested node on the reserved > region. Several memblock simulator NUMA tests still expected merges > that only worked before those reservation semantics changed, so the > suite aborted even though the allocator behavior was correct. > > Update the NUMA merge expectations in the memblock_alloc_try_nid() > and memblock_alloc_exact_nid_raw() tests to match the current reserved > region metadata rules. For cases that should still merge, create the > pre-existing reservation with matching nid and MEMBLOCK_RSRV_KERN > metadata. Also strengthen the memblock_alloc_node() coverage by > checking the newly created reserved region directly instead of > re-reading the source memory node descriptor. > > Finally, drop the stale README/TODO notes that still claimed > memblock_alloc_node() could not be tested. > > The memblock simulator passes again with NUMA enabled after these > updates. > > Signed-off-by: Priyanshu Kumar > --- > tools/testing/memblock/README | 5 +-- > tools/testing/memblock/TODO | 4 +- > .../memblock/tests/alloc_exact_nid_api.c | 29 +++++++----- > tools/testing/memblock/tests/alloc_nid_api.c | 44 +++++++++++++------ > 4 files changed, 53 insertions(+), 29 deletions(-) > > diff --git a/tools/testing/memblock/README b/tools/testing/memblock/README > index 7ca437d81806..b435f48d8a70 100644 > --- a/tools/testing/memblock/README > +++ b/tools/testing/memblock/README > @@ -104,10 +104,7 @@ called at the beginning of each test. > Known issues > ============ > > -1. Requesting a specific NUMA node via memblock_alloc_node() does not work as > - intended. Once the fix is in place, tests for this function can be added. > - > -2. Tests for memblock_alloc_low() can't be easily implemented. The function uses > +1. Tests for memblock_alloc_low() can't be easily implemented. The function uses > ARCH_LOW_ADDRESS_LIMIT marco, which can't be changed to point at the low > memory of the memory_block. > > diff --git a/tools/testing/memblock/TODO b/tools/testing/memblock/TODO > index e306c90c535f..c13ad0dae776 100644 > --- a/tools/testing/memblock/TODO > +++ b/tools/testing/memblock/TODO > @@ -1,5 +1,5 @@ > TODO > ===== > > -1. Add tests for memblock_alloc_node() to check if the correct NUMA node is set > - for the new region > +1. Add tests for memblock_alloc_low() once the simulator can model > + ARCH_LOW_ADDRESS_LIMIT against the low memory in memory_block > diff --git a/tools/testing/memblock/tests/alloc_exact_nid_api.c b/tools/testing/memblock/tests/alloc_exact_nid_api.c > index 6e14447da6e1..3f5ab994f63a 100644 > --- a/tools/testing/memblock/tests/alloc_exact_nid_api.c > +++ b/tools/testing/memblock/tests/alloc_exact_nid_api.c > @@ -368,7 +368,8 @@ static int alloc_exact_nid_bottom_up_numa_part_reserved_check(void) > max_addr = memblock_end_of_DRAM(); > total_size = size + r1.size; > > - memblock_reserve(r1.base, r1.size); > + ASSERT_EQ(0, __memblock_reserve(r1.base, r1.size, nid_req, > + MEMBLOCK_RSRV_KERN)); No need to check the return value here. > allocated_ptr = memblock_alloc_exact_nid_raw(size, SMP_CACHE_BYTES, > min_addr, max_addr, > nid_req); > @@ -831,14 +832,17 @@ static int alloc_exact_nid_numa_large_region_generic_check(void) > * | | r2 | new | r1 | | > * +-------------+----+-----------------------+----+------------------+ > * > - * Expect to merge all of the regions into one. The region counter and total > - * size fields get updated. > + * Expect to allocate the requested node as a separate kernel-reserved region. > + * The neighboring reservations remain distinct because the new region records > + * the requested NUMA node and MEMBLOCK_RSRV_KERN flag. Please don't change the test. Just use MEMBLOCK_RSRV_KERN for the first reserved region. The same comment applies to other changes as well. > */ > static int alloc_exact_nid_numa_reserved_full_merge_generic_check(void) > { > int nid_req = 6; > int nid_next = nid_req + 1; > - struct memblock_region *new_rgn = &memblock.reserved.regions[0]; > + struct memblock_region *left_rgn = &memblock.reserved.regions[0]; > + struct memblock_region *new_rgn = &memblock.reserved.regions[1]; > + struct memblock_region *right_rgn = &memblock.reserved.regions[2]; -- Sincerely yours, Mike.