All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Rapoport <rppt@kernel.org>
To: Wei Yang <richard.weiyang@gmail.com>
Cc: akpm@linux-foundation.org, linux-mm@kvack.org
Subject: Re: [Patch v2 2/8] memblock tests: add memblock_reserve_many_may_conflict_check()
Date: Wed, 1 May 2024 11:44:42 +0300	[thread overview]
Message-ID: <ZjIA-vvvDMgJhD1z@kernel.org> (raw)
In-Reply-To: <20240430014905.p2qlmjilkampka4c@master>

On Tue, Apr 30, 2024 at 01:49:05AM +0000, Wei Yang wrote:
> On Sun, Apr 28, 2024 at 09:40:33AM +0300, Mike Rapoport wrote:
> >On Thu, Apr 25, 2024 at 07:19:23AM +0000, Wei Yang wrote:
> >> This may trigger the case fixed by commit 48c3b583bbdd ("mm/memblock:
> >> fix overlapping allocation when doubling reserved array").
> >> 
> >> This is done by adding the 129th reserve region into memblock.memory. If
> >> memblock_double_array() use this reserve region as new array, it fails.
> >> 
> >> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
> >> ---
> >>  tools/testing/memblock/tests/basic_api.c | 123 +++++++++++++++++++++++
> >>  tools/testing/memblock/tests/common.c    |   4 +-
> >>  tools/testing/memblock/tests/common.h    |   1 +
> >>  3 files changed, 126 insertions(+), 2 deletions(-)
> >> 
> >> diff --git a/tools/testing/memblock/tests/basic_api.c b/tools/testing/memblock/tests/basic_api.c
> >> index 1ae62272867a..748950e02589 100644
> >> --- a/tools/testing/memblock/tests/basic_api.c
> >> +++ b/tools/testing/memblock/tests/basic_api.c
> >> @@ -991,6 +991,128 @@ static int memblock_reserve_many_check(void)
> >>  	return 0;
> >>  }
> >>  
> >> +/* Keep the gap so these memory region will not be merged. */
> >
> >The gap where? What regions should not be merged?
> >Also please add a comment with the test description
> >
> >> +#define MEMORY_BASE_OFFSET(idx, offset) ((offset) + (MEM_SIZE * 2) * (idx))
> >> +static int memblock_reserve_many_may_conflict_check(void)
> >> +{
> >> +	int i, skip;
> >> +	void *orig_region;
> >> +	struct region r = {
> >> +		.base = SZ_16K,
> >> +		.size = SZ_16K,
> >> +	};
> >> +	phys_addr_t new_reserved_regions_size;
> >> +
> >> +	/*
> >> +	 *  0        1          129
> >> +	 *  +---+    +---+      +---+
> >> +	 *  |32K|    |32K|  ..  |32K|
> >> +	 *  +---+    +---+      +---+
> >> +	 *
> >> +	 * Pre-allocate the range for 129 memory block + one range for double
> >> +	 * memblock.reserved.regions at idx 0.
> >> +	 * See commit 48c3b583bbdd ("mm/memblock: fix overlapping allocation
> >> +	 * when doubling reserved array")
> >
> >Sorry, but I'm failing to parse it
> >
> 
> Sorry for missed this one. You mean how this case is triggered?
> 
> Suppose current memblock looks like this:
> 
>                  0        1    
> memblock.memory  +---+    +---+
>                  |32K|    |32K|
>                  +---+    +---+
> 
>                  0                2          128
> memblock.reserved+---+            +---+      +---+
>                  |32K|            |32K|  ..  |32K|
>                  +---+            +---+      +---+
>                           ^
>                           |
> Now we want to reserve range 1 here. Since there are 128 blocks in
> memblock.reserved, it will double array. Now memblock_double_array() will
> "find" available range in memblock.memory.
> 
> Since we set top down, it will find memblock.memory.regions[1]. This conflict
> the range we want to reserve.

Please include something like this explanation in the test description
 
> -- 
> Wei Yang
> Help you, Help me

-- 
Sincerely yours,
Mike.


  reply	other threads:[~2024-05-01  8:46 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-25  7:19 [Patch v2 0/8] memblock: clenup Wei Yang
2024-04-25  7:19 ` [Patch v2 1/8] memblock tests: reserve the 129th memory block at all possible position Wei Yang
2024-04-28  6:35   ` Mike Rapoport
2024-04-28 12:22     ` Wei Yang
2024-04-29 14:17       ` Mike Rapoport
2024-04-30  0:12         ` Wei Yang
2024-04-25  7:19 ` [Patch v2 4/8] mm/memblock: remove consecutive regions at once Wei Yang
2024-04-28  6:44   ` Mike Rapoport
2024-04-28 12:37     ` Wei Yang
2024-04-25  7:19 ` [Patch v2 5/8] memblock tests: add memblock_overlaps_region_checks Wei Yang
2024-04-25  7:19 ` [Patch v2 6/8] mm/memblock: return true directly on finding overlap region Wei Yang
2024-04-25  7:19 ` [Patch v2 7/8] mm/memblock: use PAGE_ALIGN_DOWN to get pgend in free_memmap Wei Yang
2024-04-25  7:19 ` [Patch v2 8/8] mm/memblock: default region's nid may be MAX_NUMNODES Wei Yang
     [not found] ` <20240425071929.18004-3-richard.weiyang@gmail.com>
2024-04-28  6:40   ` [Patch v2 2/8] memblock tests: add memblock_reserve_many_may_conflict_check() Mike Rapoport
2024-04-28 12:36     ` Wei Yang
2024-04-30  1:49     ` Wei Yang
2024-05-01  8:44       ` Mike Rapoport [this message]
     [not found] ` <20240425071929.18004-4-richard.weiyang@gmail.com>
2024-04-28  6:43   ` [Patch v2 3/8] mm/memblock: fix comment for memblock_isolate_range() Mike Rapoport
2024-04-28 13:07     ` Wei Yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZjIA-vvvDMgJhD1z@kernel.org \
    --to=rppt@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-mm@kvack.org \
    --cc=richard.weiyang@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.