From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: virtualization@lists.linux-foundation.org, linux-mm@kvack.org,
David Hildenbrand <david@redhat.com>, Baoquan He <bhe@redhat.com>,
Pankaj Gupta <pankaj.gupta.linux@gmail.com>,
Mike Kravetz <mike.kravetz@oracle.com>,
Andrew Morton <akpm@linux-foundation.org>,
Michal Hocko <mhocko@suse.com>,
"Michael S . Tsirkin" <mst@redhat.com>, Qian Cai <cai@lca.pw>
Subject: [PATCH v5 2/6] mm/page_isolation: exit early when pageblock is isolated in set_migratetype_isolate()
Date: Sun, 16 Aug 2020 14:53:29 +0200 [thread overview]
Message-ID: <20200816125333.7434-3-david@redhat.com> (raw)
In-Reply-To: <20200816125333.7434-1-david@redhat.com>
Right now, if we have two isolations racing on a pageblock that's in the
MOVABLE zone, we would trigger the WARN_ON_ONCE(). Let's just return
directly, simplifying error handling.
The change was introduced in commit 3d680bdf60a5 ("mm/page_isolation: fix
potential warning from user"). As far as I can see, we currently don't have
alloc_contig_range() users that use the ZONE_MOVABLE (anymore), so it's
currently more a cleanup and a preparation for the future than a fix.
Reviewed-by: Baoquan He <bhe@redhat.com>
Reviewed-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
Acked-by: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Qian Cai <cai@lca.pw>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
mm/page_isolation.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/mm/page_isolation.c b/mm/page_isolation.c
index f6d07c5f0d34d..7d7d263ce7f4b 100644
--- a/mm/page_isolation.c
+++ b/mm/page_isolation.c
@@ -29,10 +29,12 @@ static int set_migratetype_isolate(struct page *page, int migratetype, int isol_
/*
* We assume the caller intended to SET migrate type to isolate.
* If it is already set, then someone else must have raced and
- * set it before us. Return -EBUSY
+ * set it before us.
*/
- if (is_migrate_isolate_page(page))
- goto out;
+ if (is_migrate_isolate_page(page)) {
+ spin_unlock_irqrestore(&zone->lock, flags);
+ return -EBUSY;
+ }
/*
* FIXME: Now, memory hotplug doesn't call shrink_slab() by itself.
@@ -52,7 +54,6 @@ static int set_migratetype_isolate(struct page *page, int migratetype, int isol_
ret = 0;
}
-out:
spin_unlock_irqrestore(&zone->lock, flags);
if (!ret) {
drain_all_pages(zone);
--
2.26.2
next prev parent reply other threads:[~2020-08-16 12:53 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-16 12:53 [PATCH v5 0/6] mm / virtio-mem: support ZONE_MOVABLE David Hildenbrand
2020-08-16 12:53 ` [PATCH v5 1/6] mm/page_alloc: tweak comments in has_unmovable_pages() David Hildenbrand
2020-08-16 12:53 ` David Hildenbrand [this message]
2020-08-16 12:53 ` [PATCH v5 3/6] mm/page_isolation: drop WARN_ON_ONCE() in set_migratetype_isolate() David Hildenbrand
2020-08-16 12:53 ` [PATCH v5 4/6] mm/page_isolation: cleanup set_migratetype_isolate() David Hildenbrand
2020-08-16 12:53 ` [PATCH v5 5/6] virtio-mem: don't special-case ZONE_MOVABLE David Hildenbrand
2020-08-16 12:53 ` [PATCH v5 6/6] mm: document semantics of ZONE_MOVABLE David Hildenbrand
2020-08-21 8:31 ` [PATCH v5 0/6] mm / virtio-mem: support ZONE_MOVABLE David Hildenbrand
2020-08-21 8:45 ` David Hildenbrand
2020-08-21 20:55 ` Andrew Morton
2020-09-08 10:43 ` David Hildenbrand
2020-08-21 8:46 ` Baoquan He
2020-08-21 8:48 ` David Hildenbrand
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=20200816125333.7434-3-david@redhat.com \
--to=david@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=bhe@redhat.com \
--cc=cai@lca.pw \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.com \
--cc=mike.kravetz@oracle.com \
--cc=mst@redhat.com \
--cc=pankaj.gupta.linux@gmail.com \
--cc=virtualization@lists.linux-foundation.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox