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, brauner@kernel.org, oleg@redhat.com,
	mjguzik@gmail.com, tandersen@netflix.com, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, david@redhat.com
Subject: Re: [PATCH v3 1/3] mm/memblock: introduce a new helper memblock_estimated_nr_pages()
Date: Fri, 5 Jul 2024 12:09:48 +0300	[thread overview]
Message-ID: <Zoe4XN-gKJnjJtzi@kernel.org> (raw)
In-Reply-To: <20240703005151.28712-1-richard.weiyang@gmail.com>

On Wed, Jul 03, 2024 at 12:51:49AM +0000, Wei Yang wrote:
> Instead of using raw memblock api, we wrap a new helper for user.

The changelog should be more elaborate and explain why this function is
needed.
 
> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
> ---
>  include/linux/memblock.h |  1 +
>  mm/memblock.c            | 19 +++++++++++++++++++
>  2 files changed, 20 insertions(+)
> 
> diff --git a/include/linux/memblock.h b/include/linux/memblock.h
> index 40c62aca36ec..7d1c32b3dc12 100644
> --- a/include/linux/memblock.h
> +++ b/include/linux/memblock.h
> @@ -486,6 +486,7 @@ static inline __init_memblock bool memblock_bottom_up(void)
>  
>  phys_addr_t memblock_phys_mem_size(void);
>  phys_addr_t memblock_reserved_size(void);
> +unsigned long memblock_estimated_nr_pages(void);
>  phys_addr_t memblock_start_of_DRAM(void);
>  phys_addr_t memblock_end_of_DRAM(void);
>  void memblock_enforce_memory_limit(phys_addr_t memory_limit);
> diff --git a/mm/memblock.c b/mm/memblock.c
> index e81fb68f7f88..c1f1aac0459f 100644
> --- a/mm/memblock.c
> +++ b/mm/memblock.c
> @@ -1729,6 +1729,25 @@ phys_addr_t __init_memblock memblock_reserved_size(void)
>  	return memblock.reserved.total_size;
>  }
>  
> +/**
> + * memblock_estimated_nr_pages - return number of pages from memblock point of
> + * view

This function returns the estimate for free pages, not the number of pages
in RAM.

How about memblock_estimated_nr_free_pages()?

> + * some calculation before all pages are freed to buddy system, especially
> + * when CONFIG_DEFERRED_STRUCT_PAGE_INIT is enabled.

I'm failing to parse this sentence. The return value here won't depend on
CONFIG_DEFERRED_STRUCT_PAGE_INIT.

> + *
> + * At this point, we can get this information from memblock. Since the system
> + * state is not settle down and address alignment, the value is an estimation.
> + *
> + * Return:
> + * An estimated number of pages from memblock point of view.

                            ^ free

> + */
> +unsigned long __init memblock_estimated_nr_pages(void)
> +{
> +	return PHYS_PFN(memblock_phys_mem_size() - memblock_reserved_size());
> +}
> +
>  /* lowest address */
>  phys_addr_t __init_memblock memblock_start_of_DRAM(void)
>  {
> -- 
> 2.34.1
> 

-- 
Sincerely yours,
Mike.


  parent reply	other threads:[~2024-07-05  9:12 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-03  0:51 [PATCH v3 1/3] mm/memblock: introduce a new helper memblock_estimated_nr_pages() Wei Yang
2024-07-03  0:51 ` [PATCH v3 2/3] kernel/fork.c: get totalram_pages from memblock to calculate max_threads Wei Yang
2024-07-03  0:51 ` [PATCH v3 3/3] kernel/fork.c: put set_max_threads()/task_struct_whitelist() in __init section Wei Yang
2024-07-05  9:09 ` Mike Rapoport [this message]
2024-07-05 10:16   ` [PATCH v3 1/3] mm/memblock: introduce a new helper memblock_estimated_nr_pages() David Hildenbrand
2024-07-06  1:28   ` Wei Yang
2024-07-07  8:17     ` David Hildenbrand
2024-07-07 19:03       ` Oleg Nesterov
2024-07-08  0:36         ` Wei Yang
2024-07-08  0:39       ` 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=Zoe4XN-gKJnjJtzi@kernel.org \
    --to=rppt@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=brauner@kernel.org \
    --cc=david@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mjguzik@gmail.com \
    --cc=oleg@redhat.com \
    --cc=richard.weiyang@gmail.com \
    --cc=tandersen@netflix.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.