All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@kernel.org>
To: js1304@gmail.com
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	kernel-team@lge.com, Vlastimil Babka <vbabka@suse.cz>,
	Christoph Hellwig <hch@infradead.org>,
	Roman Gushchin <guro@fb.com>,
	Mike Kravetz <mike.kravetz@oracle.com>,
	Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
	Joonsoo Kim <iamjoonsoo.kim@lge.com>
Subject: Re: [PATCH v2 02/12] mm/migrate: move migration helper from .h to .c
Date: Tue, 9 Jun 2020 14:44:30 +0200	[thread overview]
Message-ID: <20200609124430.GD22623@dhcp22.suse.cz> (raw)
In-Reply-To: <1590561903-13186-3-git-send-email-iamjoonsoo.kim@lge.com>

On Wed 27-05-20 15:44:53, Joonsoo Kim wrote:
> From: Joonsoo Kim <iamjoonsoo.kim@lge.com>
> 
> It's not performance sensitive function. Move it to .c.
> This is a preparation step for future change.
> 
> Acked-by: Mike Kravetz <mike.kravetz@oracle.com>
> Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>

Acked-by: Michal Hocko <mhocko@suse.com>

> ---
>  include/linux/migrate.h | 33 +++++----------------------------
>  mm/migrate.c            | 29 +++++++++++++++++++++++++++++
>  2 files changed, 34 insertions(+), 28 deletions(-)
> 
> diff --git a/include/linux/migrate.h b/include/linux/migrate.h
> index 3e546cb..1d70b4a 100644
> --- a/include/linux/migrate.h
> +++ b/include/linux/migrate.h
> @@ -31,34 +31,6 @@ enum migrate_reason {
>  /* In mm/debug.c; also keep sync with include/trace/events/migrate.h */
>  extern const char *migrate_reason_names[MR_TYPES];
>  
> -static inline struct page *new_page_nodemask(struct page *page,
> -				int preferred_nid, nodemask_t *nodemask)
> -{
> -	gfp_t gfp_mask = GFP_USER | __GFP_MOVABLE | __GFP_RETRY_MAYFAIL;
> -	unsigned int order = 0;
> -	struct page *new_page = NULL;
> -
> -	if (PageHuge(page))
> -		return alloc_huge_page_nodemask(page_hstate(compound_head(page)),
> -				preferred_nid, nodemask);
> -
> -	if (PageTransHuge(page)) {
> -		gfp_mask |= GFP_TRANSHUGE;
> -		order = HPAGE_PMD_ORDER;
> -	}
> -
> -	if (PageHighMem(page) || (zone_idx(page_zone(page)) == ZONE_MOVABLE))
> -		gfp_mask |= __GFP_HIGHMEM;
> -
> -	new_page = __alloc_pages_nodemask(gfp_mask, order,
> -				preferred_nid, nodemask);
> -
> -	if (new_page && PageTransHuge(new_page))
> -		prep_transhuge_page(new_page);
> -
> -	return new_page;
> -}
> -
>  #ifdef CONFIG_MIGRATION
>  
>  extern void putback_movable_pages(struct list_head *l);
> @@ -67,6 +39,8 @@ extern int migrate_page(struct address_space *mapping,
>  			enum migrate_mode mode);
>  extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free,
>  		unsigned long private, enum migrate_mode mode, int reason);
> +extern struct page *new_page_nodemask(struct page *page,
> +		int preferred_nid, nodemask_t *nodemask);
>  extern int isolate_movable_page(struct page *page, isolate_mode_t mode);
>  extern void putback_movable_page(struct page *page);
>  
> @@ -85,6 +59,9 @@ static inline int migrate_pages(struct list_head *l, new_page_t new,
>  		free_page_t free, unsigned long private, enum migrate_mode mode,
>  		int reason)
>  	{ return -ENOSYS; }
> +static inline struct page *new_page_nodemask(struct page *page,
> +		int preferred_nid, nodemask_t *nodemask)
> +	{ return NULL; }
>  static inline int isolate_movable_page(struct page *page, isolate_mode_t mode)
>  	{ return -EBUSY; }
>  
> diff --git a/mm/migrate.c b/mm/migrate.c
> index 22a26a5..824c22e 100644
> --- a/mm/migrate.c
> +++ b/mm/migrate.c
> @@ -1537,6 +1537,35 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page,
>  	return rc;
>  }
>  
> +struct page *new_page_nodemask(struct page *page,
> +				int preferred_nid, nodemask_t *nodemask)
> +{
> +	gfp_t gfp_mask = GFP_USER | __GFP_MOVABLE | __GFP_RETRY_MAYFAIL;
> +	unsigned int order = 0;
> +	struct page *new_page = NULL;
> +
> +	if (PageHuge(page))
> +		return alloc_huge_page_nodemask(
> +				page_hstate(compound_head(page)),
> +				preferred_nid, nodemask);
> +
> +	if (PageTransHuge(page)) {
> +		gfp_mask |= GFP_TRANSHUGE;
> +		order = HPAGE_PMD_ORDER;
> +	}
> +
> +	if (PageHighMem(page) || (zone_idx(page_zone(page)) == ZONE_MOVABLE))
> +		gfp_mask |= __GFP_HIGHMEM;
> +
> +	new_page = __alloc_pages_nodemask(gfp_mask, order,
> +				preferred_nid, nodemask);
> +
> +	if (new_page && PageTransHuge(new_page))
> +		prep_transhuge_page(new_page);
> +
> +	return new_page;
> +}
> +
>  #ifdef CONFIG_NUMA
>  
>  static int store_status(int __user *status, int start, int value, int nr)
> -- 
> 2.7.4
> 

-- 
Michal Hocko
SUSE Labs

  parent reply	other threads:[~2020-06-09 12:44 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-27  6:44 [PATCH v2 00/12] clean-up the migration target allocation functions js1304
2020-05-27  6:44 ` [PATCH v2 01/12] mm/page_isolation: prefer the node of the source page js1304
2020-05-28 15:34   ` Vlastimil Babka
2020-06-09 12:43   ` Michal Hocko
2020-05-27  6:44 ` [PATCH v2 02/12] mm/migrate: move migration helper from .h to .c js1304
2020-05-28 16:10   ` Vlastimil Babka
2020-06-09 12:44   ` Michal Hocko [this message]
2020-05-27  6:44 ` [PATCH v2 03/12] mm/hugetlb: introduce alloc_control structure to simplify migration target allocation APIs js1304
2020-06-09 13:24   ` Michal Hocko
2020-06-10  3:07     ` Joonsoo Kim
2020-06-10  3:07       ` Joonsoo Kim
2020-05-27  6:44 ` [PATCH v2 04/12] mm/hugetlb: use provided ac->gfp_mask for allocation js1304
2020-06-09 13:26   ` Michal Hocko
2020-06-10  3:08     ` Joonsoo Kim
2020-06-10  3:08       ` Joonsoo Kim
2020-05-27  6:44 ` [PATCH v2 05/12] mm/hugetlb: unify hugetlb migration callback function js1304
2020-06-09 13:43   ` Michal Hocko
2020-06-10  3:11     ` Joonsoo Kim
2020-06-10  3:11       ` Joonsoo Kim
2020-05-27  6:44 ` [PATCH v2 06/12] mm/hugetlb: make hugetlb migration target allocation APIs CMA aware js1304
2020-06-09 13:53   ` Michal Hocko
2020-06-10  3:36     ` Joonsoo Kim
2020-06-10  3:36       ` Joonsoo Kim
2020-05-27  6:44 ` [PATCH v2 07/12] mm/hugetlb: do not modify user provided gfp_mask js1304
2020-06-09 13:54   ` Michal Hocko
2020-06-10  5:12     ` Joonsoo Kim
2020-06-10  5:12       ` Joonsoo Kim
2020-05-27  6:44 ` [PATCH v2 08/12] mm/migrate: change the interface of the migration target alloc/free functions js1304
2020-06-09 14:04   ` Michal Hocko
2020-06-10  3:45     ` Joonsoo Kim
2020-06-10  3:45       ` Joonsoo Kim
2020-05-27  6:45 ` [PATCH v2 09/12] mm/migrate: make standard migration target allocation functions js1304
2020-05-27  6:45 ` [PATCH v2 10/12] mm/gup: use standard migration target allocation function js1304
2020-05-27  6:45 ` [PATCH v2 11/12] mm/mempolicy: " js1304
2020-05-27  6:45 ` [PATCH v2 12/12] mm/page_alloc: use standard migration target allocation function directly js1304
2020-05-28 19:25 ` [PATCH v2 00/12] clean-up the migration target allocation functions Vlastimil Babka
2020-05-29  6:50   ` Joonsoo Kim
2020-05-29  6:50     ` Joonsoo Kim
2020-06-01  6:40     ` Joonsoo Kim
2020-06-01  6:40       ` Joonsoo Kim

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=20200609124430.GD22623@dhcp22.suse.cz \
    --to=mhocko@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=guro@fb.com \
    --cc=hch@infradead.org \
    --cc=iamjoonsoo.kim@lge.com \
    --cc=js1304@gmail.com \
    --cc=kernel-team@lge.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mike.kravetz@oracle.com \
    --cc=n-horiguchi@ah.jp.nec.com \
    --cc=vbabka@suse.cz \
    /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.