public inbox for linux-mm@kvack.org
 help / color / mirror / Atom feed
From: Matthew Wilcox <willy@infradead.org>
To: linux-mm@kvack.org
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>,
	kirill.shutemov@linux.intel.com, pasha.tatashin@soleen.com
Subject: [PATCH 2/5] mm: Rename PF_POISONED_PAGE to page_poison_check
Date: Wed,  8 Apr 2020 08:01:45 -0700	[thread overview]
Message-ID: <20200408150148.25290-3-willy@infradead.org> (raw)
In-Reply-To: <20200408150148.25290-1-willy@infradead.org>

From: "Matthew Wilcox (Oracle)" <willy@infradead.org>

The PF_POISONED_PAGE name is misleading because it's not a page flag
policy.  Switch from VM_BUG_ON_PGFLAGS to VM_BUG_ON_PAGE.  Move the
implementation further up in the file for the benefit of future patches.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 include/linux/mm.h         |  2 +-
 include/linux/page-flags.h | 34 +++++++++++++++++-----------------
 2 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/include/linux/mm.h b/include/linux/mm.h
index 61aa63449e7e..933450bdcfd4 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1248,7 +1248,7 @@ static inline int page_to_nid(const struct page *page)
 {
 	struct page *p = (struct page *)page;
 
-	return (PF_POISONED_CHECK(p)->flags >> NODES_PGSHIFT) & NODES_MASK;
+	return (page_poison_check(p)->flags >> NODES_PGSHIFT) & NODES_MASK;
 }
 #endif
 
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index f1ab1f2e6aba..331aef35f3e0 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -175,6 +175,18 @@ enum pageflags {
 
 #ifndef __GENERATING_BOUNDS_H
 
+#define	PAGE_POISON_PATTERN	-1l
+static inline int PagePoisoned(const struct page *page)
+{
+	return page->flags == PAGE_POISON_PATTERN;
+}
+
+#define page_poison_check(page) ({					\
+	__typeof__(page) ___page = page;				\
+	VM_BUG_ON_PAGE(PagePoisoned(___page), ___page);			\
+	___page;							\
+})
+
 #define compound_head(page) ({						\
 	__typeof__(page) _page = page;					\
 	unsigned long head = READ_ONCE(_page->compound_head);		\
@@ -193,12 +205,6 @@ static __always_inline int PageCompound(const struct page *page)
 	return test_bit(PG_head, &page->flags) || PageTail(page);
 }
 
-#define	PAGE_POISON_PATTERN	-1l
-static inline int PagePoisoned(const struct page *page)
-{
-	return page->flags == PAGE_POISON_PATTERN;
-}
-
 #ifdef CONFIG_DEBUG_VM
 void page_init_poison(struct page *page, size_t size);
 #else
@@ -210,9 +216,6 @@ static inline void page_init_poison(struct page *page, size_t size)
 /*
  * Page flags policies wrt compound pages
  *
- * PF_POISONED_CHECK
- *     check if this struct page poisoned/uninitialized
- *
  * PF_ANY:
  *     the page flag is relevant for small, head and tail pages.
  *
@@ -230,20 +233,17 @@ static inline void page_init_poison(struct page *page, size_t size)
  * PF_NO_COMPOUND:
  *     the page flag is not relevant for compound pages.
  */
-#define PF_POISONED_CHECK(page) ({					\
-		VM_BUG_ON_PGFLAGS(PagePoisoned(page), page);		\
-		page; })
-#define PF_ANY(page, enforce)	PF_POISONED_CHECK(page)
-#define PF_HEAD(page, enforce)	PF_POISONED_CHECK(compound_head(page))
+#define PF_ANY(page, enforce)	page_poison_check(page)
+#define PF_HEAD(page, enforce)	page_poison_check(compound_head(page))
 #define PF_ONLY_HEAD(page, enforce) ({					\
 		VM_BUG_ON_PGFLAGS(PageTail(page), page);		\
-		PF_POISONED_CHECK(page); })
+		page_poison_check(page); })
 #define PF_NO_TAIL(page, enforce) ({					\
 		VM_BUG_ON_PGFLAGS(enforce && PageTail(page), page);	\
-		PF_POISONED_CHECK(compound_head(page)); })
+		page_poison_check(compound_head(page)); })
 #define PF_NO_COMPOUND(page, enforce) ({				\
 		VM_BUG_ON_PGFLAGS(enforce && PageCompound(page), page);	\
-		PF_POISONED_CHECK(page); })
+		page_poison_check(page); })
 
 /*
  * Macros to create function definitions for page flags
-- 
2.25.1



  parent reply	other threads:[~2020-04-08 15:02 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-08 15:01 [PATCH 0/5] Improve page poisoning implementation Matthew Wilcox
2020-04-08 15:01 ` [PATCH 1/5] mm: Constify a lot of struct page arguments Matthew Wilcox
2020-04-08 15:14   ` Pavel Tatashin
2020-04-09 14:09   ` Kirill A. Shutemov
2020-04-09 14:15     ` Matthew Wilcox
2020-04-09 14:28       ` Kirill A. Shutemov
2020-04-09 14:32         ` Matthew Wilcox
2020-04-09 14:47           ` Kirill A. Shutemov
2020-04-09 15:00             ` Kirill A. Shutemov
2020-04-09 17:12             ` Jason Gunthorpe
2020-04-09 20:47               ` John Hubbard
2020-04-08 15:01 ` Matthew Wilcox [this message]
2020-04-08 15:21   ` [PATCH 2/5] mm: Rename PF_POISONED_PAGE to page_poison_check Pavel Tatashin
2020-04-09 14:14   ` Kirill A. Shutemov
2020-04-08 15:01 ` [PATCH 3/5] mm: Remove casting away of constness Matthew Wilcox
2020-04-08 15:23   ` Pavel Tatashin
2020-04-09 14:19   ` Kirill A. Shutemov
2020-04-08 15:01 ` [PATCH 4/5] mm: Check for page poison in both page_to_nid implementations Matthew Wilcox
2020-04-08 15:24   ` Pavel Tatashin
2020-04-09 14:21   ` Kirill A. Shutemov
2020-04-08 15:01 ` [PATCH 5/5] mm: Check page poison before finding a head page Matthew Wilcox
2020-04-08 15:32   ` Pavel Tatashin
2020-04-09 14:25   ` Kirill A. Shutemov
2020-04-08 15:11 ` [PATCH 0/5] Improve page poisoning implementation Pavel Tatashin
2020-04-09 20:55   ` John Hubbard

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=20200408150148.25290-3-willy@infradead.org \
    --to=willy@infradead.org \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=linux-mm@kvack.org \
    --cc=pasha.tatashin@soleen.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox