All of lore.kernel.org
 help / color / mirror / Atom feed
From: Baoquan He <bhe@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org, akpm@linux-foundation.org, mhocko@suse.com,
	david@redhat.com, richardw.yang@linux.intel.com,
	dan.j.williams@intel.com, osalvador@suse.de, rppt@linux.ibm.com
Subject: Re: [PATCH v3 5/7] mm/sparse.c: add note about only VMEMMAP supporting sub-section support
Date: Sat, 7 Mar 2020 19:55:56 +0800	[thread overview]
Message-ID: <20200307115556.GB27711@MiWiFi-R3L-srv> (raw)
In-Reply-To: <20200307084229.28251-6-bhe@redhat.com>

On 03/07/20 at 04:42pm, Baoquan He wrote:

Sorry, the subject should be:

mm/sparse.c: add note about only VMEMMAP supporting sub-section hotplug

> And tell check_pfn_span() gating the porper alignment and size of
> hot added memory region.
> 
> And also move the code comments from inside section_deactivate()
> to being above it. The code comments are reasonable for the whole
> function, and the moving makes code cleaner.
> 
> Signed-off-by: Baoquan He <bhe@redhat.com>
> ---
>  mm/sparse.c | 37 ++++++++++++++++++++-----------------
>  1 file changed, 20 insertions(+), 17 deletions(-)
> 
> diff --git a/mm/sparse.c b/mm/sparse.c
> index 2142045ab5c5..0fbd79c4ad81 100644
> --- a/mm/sparse.c
> +++ b/mm/sparse.c
> @@ -772,6 +772,22 @@ static bool is_subsection_map_empty(struct mem_section *ms)
>  }
>  #endif
>  
> +/*
> + * To deactivate a memory region, there are 3 cases to handle across
> + * two configurations (SPARSEMEM_VMEMMAP={y,n}):
> + *
> + * 1. deactivation of a partial hot-added section (only possible in
> + *    the SPARSEMEM_VMEMMAP=y case).
> + *      a) section was present at memory init.
> + *      b) section was hot-added post memory init.
> + * 2. deactivation of a complete hot-added section.
> + * 3. deactivation of a complete section from memory init.
> + *
> + * For 1, when subsection_map does not empty we will not be freeing the
> + * usage map, but still need to free the vmemmap range.
> + *
> + * For 2 and 3, the SPARSEMEM_VMEMMAP={y,n} cases are unified
> + */
>  static void section_deactivate(unsigned long pfn, unsigned long nr_pages,
>  		struct vmem_altmap *altmap)
>  {
> @@ -784,23 +800,6 @@ static void section_deactivate(unsigned long pfn, unsigned long nr_pages,
>  		return;
>  
>  	empty = is_subsection_map_empty(ms);
> -	/*
> -	 * There are 3 cases to handle across two configurations
> -	 * (SPARSEMEM_VMEMMAP={y,n}):
> -	 *
> -	 * 1/ deactivation of a partial hot-added section (only possible
> -	 * in the SPARSEMEM_VMEMMAP=y case).
> -	 *    a/ section was present at memory init
> -	 *    b/ section was hot-added post memory init
> -	 * 2/ deactivation of a complete hot-added section
> -	 * 3/ deactivation of a complete section from memory init
> -	 *
> -	 * For 1/, when subsection_map does not empty we will not be
> -	 * freeing the usage map, but still need to free the vmemmap
> -	 * range.
> -	 *
> -	 * For 2/ and 3/ the SPARSEMEM_VMEMMAP={y,n} cases are unified
> -	 */
>  	if (empty) {
>  		unsigned long section_nr = pfn_to_section_nr(pfn);
>  
> @@ -907,6 +906,10 @@ static struct page * __meminit section_activate(int nid, unsigned long pfn,
>   *
>   * This is only intended for hotplug.
>   *
> + * Note that only VMEMMAP supports sub-section aligned hotplug,
> + * the proper alignment and size are gated by check_pfn_span().
> + *
> + *
>   * Return:
>   * * 0		- On success.
>   * * -EEXIST	- Section has been present.
> -- 
> 2.17.2
> 



  reply	other threads:[~2020-03-07 11:56 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-07  8:42 [PATCH v3 0/7] mm/hotplug: Only use subsection map for VMEMMAP Baoquan He
2020-03-07  8:42 ` [PATCH v3 1/7] mm/hotplug: fix hot remove failure in SPARSEMEM|!VMEMMAP case Baoquan He
2020-03-07 20:59   ` Andrew Morton
2020-03-07 22:55     ` Baoquan He
2020-03-09  8:56   ` David Hildenbrand
2020-03-09  8:58   ` David Hildenbrand
2020-03-09 13:18     ` Baoquan He
2020-03-09 13:22       ` David Hildenbrand
2020-03-09 10:13   ` Pankaj Gupta
2020-03-09 12:56   ` Michal Hocko
2020-03-07  8:42 ` [PATCH v3 2/7] mm/sparse.c: introduce new function fill_subsection_map() Baoquan He
2020-03-07  8:42 ` [PATCH v3 3/7] mm/sparse.c: introduce a new function clear_subsection_map() Baoquan He
2020-03-09  8:59   ` David Hildenbrand
2020-03-09 13:32     ` Baoquan He
2020-03-09 13:38       ` David Hildenbrand
2020-03-09 14:07         ` Baoquan He
2020-03-07  8:42 ` [PATCH v3 4/7] mm/sparse.c: only use subsection map in VMEMMAP case Baoquan He
2020-03-09  9:00   ` David Hildenbrand
2020-03-07  8:42 ` [PATCH v3 5/7] mm/sparse.c: add note about only VMEMMAP supporting sub-section support Baoquan He
2020-03-07 11:55   ` Baoquan He [this message]
2020-03-10 14:46   ` Michal Hocko
2020-03-11  4:20     ` Baoquan He
2020-03-07  8:42 ` [PATCH v3 6/7] mm/sparse.c: move subsection_map related codes together Baoquan He
2020-03-09  9:08   ` David Hildenbrand
2020-03-09 13:41     ` Baoquan He
2020-03-07  8:42 ` [PATCH v3 7/7] mm/sparse.c: Use __get_free_pages() instead in populate_section_memmap() Baoquan He
2020-03-10 14:56   ` Michal Hocko
2020-03-10 14:59     ` David Hildenbrand
2020-03-11  9:31     ` Baoquan He

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=20200307115556.GB27711@MiWiFi-R3L-srv \
    --to=bhe@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=dan.j.williams@intel.com \
    --cc=david@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@suse.com \
    --cc=osalvador@suse.de \
    --cc=richardw.yang@linux.intel.com \
    --cc=rppt@linux.ibm.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.