All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Rapoport <rppt@kernel.org>
To: suhua <suhua.tanke@gmail.com>
Cc: akpm@linux-foundation.org, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, suhua <suhua1@kingsoft.com>
Subject: Re: [PATCH] memblock: Uniform initialization all reserved pages to MIGRATE_MOVABLE
Date: Sun, 20 Oct 2024 10:11:38 +0300	[thread overview]
Message-ID: <ZxStKvw6HwminDub@kernel.org> (raw)
In-Reply-To: <20241017064449.5235-1-suhua1@kingsoft.com>

On Thu, Oct 17, 2024 at 02:44:49PM +0800, suhua wrote:
> Subject: memblock: Uniform initialization all reserved pages to MIGRATE_MOVABLE

I'd suggest:

memblock: uniformly initialize all reserved pages to MIGRATE_MOVABLE

> Currently when CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set, the reserved
> pages are initialized to MIGRATE_MOVABLE by default in memmap_init.
> 
> Reserved memory mainly stores the metadata of struct page. When
> HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON=Y and hugepages are allocated,
> the memory occupied by the struct page metadata will be freed.

The struct page metadata is not freed with HVO, it is rather pages used for
vmemmap.
 
> Before this patch:
> when CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set, the freed memory was
> placed on the Movable list;
> When CONFIG_DEFERRED_STRUCT_PAGE_INIT=Y, the freed memory was placed on
> the Unmovable list.
> 
> After this patch, the freed memory is placed on the Movable list
> regardless of whether CONFIG_DEFERRED_STRUCT_PAGE_INIT is set.
> 
> Eg:

Please add back the description of the hardware used for this test and how
much huge pages were allocated at boot.

> echo 500000 > /proc/sys/vm/nr_hugepages
> cat /proc/pagetypeinfo
> 
> before:
> Free pages count per migrate type at order       0      1      2      3      4      5      6      7      8      9     10
> …
> Node    0, zone   Normal, type    Unmovable     51      2      1     28     53     35     35     43     40     69   3852
> Node    0, zone   Normal, type      Movable   6485   4610    666    202    200    185    208     87     54      2    240
> Node    0, zone   Normal, type  Reclaimable      2      2      1     23     13      1      2      1      0      1      0
> Node    0, zone   Normal, type   HighAtomic      0      0      0      0      0      0      0      0      0      0      0
> Node    0, zone   Normal, type      Isolate      0      0      0      0      0      0      0      0      0      0      0
> Unmovable ≈ 15GB
> 
> after:
> Free pages count per migrate type at order       0      1      2      3      4      5      6      7      8      9     10
> …
> Node    0, zone   Normal, type    Unmovable      0      1      1      0      0      0      0      1      1      1      0
> Node    0, zone   Normal, type      Movable   1563   4107   1119    189    256    368    286    132    109      4   3841
> Node    0, zone   Normal, type  Reclaimable      2      2      1     23     13      1      2      1      0      1      0
> Node    0, zone   Normal, type   HighAtomic      0      0      0      0      0      0      0      0      0      0      0
> Node    0, zone   Normal, type      Isolate      0      0      0      0      0      0      0      0      0      0      0
> 
> Signed-off-by: suhua <suhua1@kingsoft.com>

checkpatch.pl gives this warning:

WARNING: From:/Signed-off-by: email address mismatch: 'From: suhua <suhua.tanke@gmail.com>' != 'Signed-off-by: suhua <suhua1@kingsoft.com>'
Please update the commit authorship or signed-off to match.

Also, Signed-off-by should use a known identity, i.e. Name Lastname.

> ---
>  mm/mm_init.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/mm/mm_init.c b/mm/mm_init.c
> index 4ba5607aaf19..6dbf2df23eee 100644
> --- a/mm/mm_init.c
> +++ b/mm/mm_init.c
> @@ -722,6 +722,10 @@ static void __meminit init_reserved_page(unsigned long pfn, int nid)
>  		if (zone_spans_pfn(zone, pfn))
>  			break;
>  	}
> +
> +	if (pageblock_aligned(pfn))
> +		set_pageblock_migratetype(pfn_to_page(pfn), MIGRATE_MOVABLE);
> +
>  	__init_single_page(pfn_to_page(pfn), pfn, zid, nid);
>  }
>  #else
> -- 
> 2.34.1
> 

-- 
Sincerely yours,
Mike.


  parent reply	other threads:[~2024-10-20  7:15 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-17  6:44 [PATCH] memblock: Uniform initialization all reserved pages to MIGRATE_MOVABLE suhua
2024-10-19  1:57 ` Wei Yang
2024-10-20  7:11 ` Mike Rapoport [this message]
2024-10-21  4:54   ` Su Hua

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=ZxStKvw6HwminDub@kernel.org \
    --to=rppt@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=suhua.tanke@gmail.com \
    --cc=suhua1@kingsoft.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.