All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oscar Salvador <osalvador@suse.de>
To: Huang Ying <ying.huang@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	Zi Yan <ziy@nvidia.com>, Yang Shi <shy828301@gmail.com>
Subject: Re: [PATCH -V2 3/7] migrate_pages(): fix THP failure counting for -ENOMEM
Date: Mon, 11 Jul 2022 14:01:55 +0200	[thread overview]
Message-ID: <YswRMxPWz2juorft@localhost.localdomain> (raw)
In-Reply-To: <20220711084948.274787-4-ying.huang@intel.com>

On Mon, Jul 11, 2022 at 04:49:44PM +0800, Huang Ying wrote:
> In unmap_and_move(), if the new THP cannot be allocated, -ENOMEM will
> be returned, and migrate_pages() will try to split the THP unless
> "reason" is MR_NUMA_MISPLACED (that is, nosplit == true).  But when
> nosplit == true, the THP migration failure will not be counted.  This
> is incorrect.  So in this patch, the THP migration failure will be
> counted for -ENOMEM regardless of nosplit is true or false.  The
> nr_failed counting isn't fixed because it's not used.  Added some
> comments for it per Baolin's suggestion.
> 
> Signed-off-by: "Huang, Ying" <ying.huang@intel.com>
> Fixes: 5984fabb6e82 ("mm: move_pages: report the number of non-attempted pages")
> Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
> Cc: Zi Yan <ziy@nvidia.com>
> Cc: Yang Shi <shy828301@gmail.com>

Reviewed-by: Oscar Salvador <osalvador@suse.de>

> ---
>  mm/migrate.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/mm/migrate.c b/mm/migrate.c
> index 794312072eb3..38e2c789a9c3 100644
> --- a/mm/migrate.c
> +++ b/mm/migrate.c
> @@ -1426,11 +1426,11 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page,
>  				/*
>  				 * When memory is low, don't bother to try to migrate
>  				 * other pages, just exit.
> -				 * THP NUMA faulting doesn't split THP to retry.
>  				 */
> -				if (is_thp && !nosplit) {
> +				if (is_thp) {
>  					nr_thp_failed++;
> -					if (!try_split_thp(page, &thp_split_pages)) {
> +					/* THP NUMA faulting doesn't split THP to retry. */
> +					if (!nosplit && !try_split_thp(page, &thp_split_pages)) {
>  						nr_thp_split++;
>  						goto retry;
>  					}
> @@ -1446,6 +1446,7 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page,
>  				 * the caller otherwise the page refcnt will be leaked.
>  				 */
>  				list_splice_init(&thp_split_pages, from);
> +				/* nr_failed isn't updated for not used */
>  				nr_thp_failed += thp_retry;
>  				goto out;
>  			case -EAGAIN:
> -- 
> 2.30.2
> 
> 

-- 
Oscar Salvador
SUSE Labs

  reply	other threads:[~2022-07-11 12:02 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-11  8:49 [PATCH -V2 0/7] migrate_pages(): fix several bugs in error path Huang Ying
2022-07-11  8:49 ` [PATCH -V2 1/7] migrate: fix syscall move_pages() return value for failure Huang Ying
2022-07-11 11:52   ` Oscar Salvador
2022-07-12  0:59     ` Huang, Ying
2022-07-11  8:49 ` [PATCH -V2 2/7] migrate_pages(): remove unnecessary list_safe_reset_next() Huang Ying
2022-07-11 11:57   ` Oscar Salvador
2022-07-11  8:49 ` [PATCH -V2 3/7] migrate_pages(): fix THP failure counting for -ENOMEM Huang Ying
2022-07-11 12:01   ` Oscar Salvador [this message]
2022-07-11  8:49 ` [PATCH -V2 4/7] migrate_pages(): fix failure counting for THP subpages retrying Huang Ying
2022-07-11 12:13   ` Oscar Salvador
2022-07-11  8:49 ` [PATCH -V2 5/7] migrate_pages(): fix failure counting for THP on -ENOSYS Huang Ying
2022-07-11 12:26   ` Oscar Salvador
2022-07-13  8:30     ` Huang, Ying
2022-07-11  8:49 ` [PATCH -V2 6/7] migrate_pages(): fix failure counting for THP splitting Huang Ying
2022-07-11 12:39   ` Oscar Salvador
2022-07-11  8:49 ` [PATCH -V2 7/7] migrate_pages(): fix failure counting for retry Huang Ying
2022-07-11 12:52   ` Oscar Salvador

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=YswRMxPWz2juorft@localhost.localdomain \
    --to=osalvador@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=shy828301@gmail.com \
    --cc=ying.huang@intel.com \
    --cc=ziy@nvidia.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.