LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* Re: [PATCH] mm:add VM_BUG_ON() for page_mapcount()
@ 2014-12-08 9:33 Hillf Danton
2014-12-08 9:51 ` Wang, Yalin
2014-12-08 9:58 ` [PATCH V2] " Wang, Yalin
0 siblings, 2 replies; 9+ messages in thread
From: Hillf Danton @ 2014-12-08 9:33 UTC (permalink / raw)
To: Yalin.Wang
Cc: linux-kernel, linux-mm, linux-arm-kernel, Andrew Morton, Hillf Danton
>
> This patch add VM_BUG_ON() for slab page,
> because _mapcount is an union with slab struct in struct page,
> avoid access _mapcount if this page is a slab page.
> Also remove the unneeded bracket.
>
> Signed-off-by: Yalin Wang <yalin.wang@sonymobile.com>
> ---
> include/linux/mm.h | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 11b65cf..34124c4 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -373,7 +373,8 @@ static inline void reset_page_mapcount(struct page *page)
>
> static inline int page_mapcount(struct page *page)
> {
> - return atomic_read(&(page)->_mapcount) + 1;
> + VM_BUG_ON(PageSlab(page));
s/ VM_BUG_ON/ VM_BUG_ON_PAGE/ ?
> + return atomic_read(&page->_mapcount) + 1;
> }
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH] mm:add VM_BUG_ON() for page_mapcount()
2014-12-08 9:33 [PATCH] mm:add VM_BUG_ON() for page_mapcount() Hillf Danton
@ 2014-12-08 9:51 ` Wang, Yalin
2014-12-08 9:58 ` [PATCH V2] " Wang, Yalin
1 sibling, 0 replies; 9+ messages in thread
From: Wang, Yalin @ 2014-12-08 9:51 UTC (permalink / raw)
To: 'Hillf Danton'
Cc: linux-kernel, linux-mm, linux-arm-kernel, Andrew Morton
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 1289 bytes --]
> -----Original Message-----
> From: Hillf Danton [mailto:hillf.zj@alibaba-inc.com]
> Sent: Monday, December 08, 2014 5:33 PM
> To: Wang, Yalin
> Cc: linux-kernel; linux-mm@kvack.org; linux-arm-kernel@lists.infradead.org;
> Andrew Morton; Hillf Danton
> Subject: Re: [PATCH] mm:add VM_BUG_ON() for page_mapcount()
>
> >
> > This patch add VM_BUG_ON() for slab page, because _mapcount is an
> > union with slab struct in struct page, avoid access _mapcount if this
> > page is a slab page.
> > Also remove the unneeded bracket.
> >
> > Signed-off-by: Yalin Wang <yalin.wang@sonymobile.com>
> > ---
> > include/linux/mm.h | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/include/linux/mm.h b/include/linux/mm.h index
> > 11b65cf..34124c4 100644
> > --- a/include/linux/mm.h
> > +++ b/include/linux/mm.h
> > @@ -373,7 +373,8 @@ static inline void reset_page_mapcount(struct page
> > *page)
> >
> > static inline int page_mapcount(struct page *page) {
> > - return atomic_read(&(page)->_mapcount) + 1;
> > + VM_BUG_ON(PageSlab(page));
>
> s/ VM_BUG_ON/ VM_BUG_ON_PAGE/ ?
Yes, I will send again .
ÿôèº{.nÇ+·®+%Ëÿ±éݶ\x17¥wÿº{.nÇ+·¥{±þG«éÿ{ayº\x1dÊÚë,j\a¢f£¢·hïêÿêçz_è®\x03(éÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?¨èÚ&£ø§~á¶iOæ¬z·vØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?I¥
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH V2] mm:add VM_BUG_ON() for page_mapcount()
2014-12-08 9:33 [PATCH] mm:add VM_BUG_ON() for page_mapcount() Hillf Danton
2014-12-08 9:51 ` Wang, Yalin
@ 2014-12-08 9:58 ` Wang, Yalin
2014-12-08 9:59 ` [PATCH V3] mm:add VM_BUG_ON_PAGE() " Wang, Yalin
1 sibling, 1 reply; 9+ messages in thread
From: Wang, Yalin @ 2014-12-08 9:58 UTC (permalink / raw)
To: 'Hillf Danton',
linux-kernel, linux-mm, linux-arm-kernel, Andrew Morton
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 954 bytes --]
This patch add VM_BUG_ON_PAGE() for slab page,
because _mapcount is an union with slab struct in struct page,
avoid access _mapcount if this page is a slab page.
Also remove the unneeded bracket.
Signed-off-by: Yalin Wang <yalin.wang@sonymobile.com>
---
include/linux/mm.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/linux/mm.h b/include/linux/mm.h
index b464611..a117527 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -449,7 +449,8 @@ static inline void page_mapcount_reset(struct page *page)
static inline int page_mapcount(struct page *page)
{
- return atomic_read(&(page)->_mapcount) + 1;
+ VM_BUG_ON_PAGE(PageSlab(page), page);
+ return atomic_read(&page->_mapcount) + 1;
}
static inline int page_count(struct page *page)
--
2.1.3
ÿôèº{.nÇ+·®+%Ëÿ±éݶ\x17¥wÿº{.nÇ+·¥{±þG«éÿ{ayº\x1dÊÚë,j\a¢f£¢·hïêÿêçz_è®\x03(éÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?¨èÚ&£ø§~á¶iOæ¬z·vØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?I¥
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH V3] mm:add VM_BUG_ON_PAGE() for page_mapcount()
2014-12-08 9:58 ` [PATCH V2] " Wang, Yalin
@ 2014-12-08 9:59 ` Wang, Yalin
2014-12-08 11:54 ` Kirill A. Shutemov
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Wang, Yalin @ 2014-12-08 9:59 UTC (permalink / raw)
To: 'Hillf Danton', 'linux-kernel',
'linux-mm@kvack.org',
'linux-arm-kernel@lists.infradead.org',
'Andrew Morton'
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 954 bytes --]
This patch add VM_BUG_ON_PAGE() for slab page,
because _mapcount is an union with slab struct in struct page,
avoid access _mapcount if this page is a slab page.
Also remove the unneeded bracket.
Signed-off-by: Yalin Wang <yalin.wang@sonymobile.com>
---
include/linux/mm.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/linux/mm.h b/include/linux/mm.h
index b464611..a117527 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -449,7 +449,8 @@ static inline void page_mapcount_reset(struct page *page)
static inline int page_mapcount(struct page *page)
{
- return atomic_read(&(page)->_mapcount) + 1;
+ VM_BUG_ON_PAGE(PageSlab(page), page);
+ return atomic_read(&page->_mapcount) + 1;
}
static inline int page_count(struct page *page)
--
2.1.3
ÿôèº{.nÇ+·®+%Ëÿ±éݶ\x17¥wÿº{.nÇ+·¥{±þG«éÿ{ayº\x1dÊÚë,j\a¢f£¢·hïêÿêçz_è®\x03(éÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?¨èÚ&£ø§~á¶iOæ¬z·vØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?I¥
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH V3] mm:add VM_BUG_ON_PAGE() for page_mapcount()
2014-12-08 9:59 ` [PATCH V3] mm:add VM_BUG_ON_PAGE() " Wang, Yalin
@ 2014-12-08 11:54 ` Kirill A. Shutemov
2014-12-09 3:18 ` Hillf Danton
2015-06-09 16:14 ` Vlastimil Babka
2 siblings, 0 replies; 9+ messages in thread
From: Kirill A. Shutemov @ 2014-12-08 11:54 UTC (permalink / raw)
To: Wang, Yalin
Cc: 'Hillf Danton', 'linux-kernel',
'linux-mm@kvack.org',
'linux-arm-kernel@lists.infradead.org',
'Andrew Morton'
On Mon, Dec 08, 2014 at 05:59:46PM +0800, Wang, Yalin wrote:
> This patch add VM_BUG_ON_PAGE() for slab page,
> because _mapcount is an union with slab struct in struct page,
> avoid access _mapcount if this page is a slab page.
> Also remove the unneeded bracket.
>
> Signed-off-by: Yalin Wang <yalin.wang@sonymobile.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
--
Kirill A. Shutemov
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH V3] mm:add VM_BUG_ON_PAGE() for page_mapcount()
2014-12-08 9:59 ` [PATCH V3] mm:add VM_BUG_ON_PAGE() " Wang, Yalin
2014-12-08 11:54 ` Kirill A. Shutemov
@ 2014-12-09 3:18 ` Hillf Danton
2015-06-09 16:14 ` Vlastimil Babka
2 siblings, 0 replies; 9+ messages in thread
From: Hillf Danton @ 2014-12-09 3:18 UTC (permalink / raw)
To: 'Wang, Yalin', 'linux-kernel',
linux-mm, linux-arm-kernel, 'Andrew Morton'
>
> This patch add VM_BUG_ON_PAGE() for slab page,
> because _mapcount is an union with slab struct in struct page,
> avoid access _mapcount if this page is a slab page.
> Also remove the unneeded bracket.
>
> Signed-off-by: Yalin Wang <yalin.wang@sonymobile.com>
> ---
Acked-by: Hillf Danton <hillf.zj@alibaba-inc.com>
> include/linux/mm.h | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index b464611..a117527 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -449,7 +449,8 @@ static inline void page_mapcount_reset(struct page *page)
>
> static inline int page_mapcount(struct page *page)
> {
> - return atomic_read(&(page)->_mapcount) + 1;
> + VM_BUG_ON_PAGE(PageSlab(page), page);
> + return atomic_read(&page->_mapcount) + 1;
> }
>
> static inline int page_count(struct page *page)
> --
> 2.1.3
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH V3] mm:add VM_BUG_ON_PAGE() for page_mapcount()
2014-12-08 9:59 ` [PATCH V3] mm:add VM_BUG_ON_PAGE() " Wang, Yalin
2014-12-08 11:54 ` Kirill A. Shutemov
2014-12-09 3:18 ` Hillf Danton
@ 2015-06-09 16:14 ` Vlastimil Babka
2 siblings, 0 replies; 9+ messages in thread
From: Vlastimil Babka @ 2015-06-09 16:14 UTC (permalink / raw)
To: Wang, Yalin, 'Hillf Danton', 'linux-kernel',
'linux-mm@kvack.org',
'linux-arm-kernel@lists.infradead.org',
'Andrew Morton'
Cc: Kirill A. Shutemov, David Rientjes
On 12/08/2014 10:59 AM, Wang, Yalin wrote:
> This patch add VM_BUG_ON_PAGE() for slab page,
> because _mapcount is an union with slab struct in struct page,
> avoid access _mapcount if this page is a slab page.
> Also remove the unneeded bracket.
>
> Signed-off-by: Yalin Wang <yalin.wang@sonymobile.com>
> ---
> include/linux/mm.h | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index b464611..a117527 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -449,7 +449,8 @@ static inline void page_mapcount_reset(struct page *page)
>
> static inline int page_mapcount(struct page *page)
> {
> - return atomic_read(&(page)->_mapcount) + 1;
> + VM_BUG_ON_PAGE(PageSlab(page), page);
> + return atomic_read(&page->_mapcount) + 1;
> }
>
I think this might theoretically trigger on the following code in
compaction's isolate_migratepages_block():
/*
* Migration will fail if an anonymous page is pinned in memory,
* so avoid taking lru_lock and isolating it unnecessarily in an
* admittedly racy check.
*/
if (!page_mapping(page) &&
page_count(page) > page_mapcount(page))
continue;
This is done after PageLRU() was positive, but the lru_lock might be not
taken yet. So, there's some time window during which the page might have
been reclaimed from LRU and become a PageSlab(page). !page_mapping(page)
will be true in that case so it will proceed with page_mapcount(page)
test and trigger the VM_BUG_ON.
(That test was added by DavidR year ago in commit
119d6d59dcc0980dcd581fdadb6b2033b512a473)
Vlastimil
> static inline int page_count(struct page *page)
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [RFC] mm:add KPF_ZERO_PAGE flag for /proc/kpageflags
@ 2014-12-05 8:57 Wang, Yalin
2014-12-05 10:21 ` [RFC V2] " Wang, Yalin
0 siblings, 1 reply; 9+ messages in thread
From: Wang, Yalin @ 2014-12-05 8:57 UTC (permalink / raw)
To: linux-kernel, linux-mm, linux-arm-kernel,
'Konstantin Khlebnikov',
'akpm@linux-foundation.org',
'n-horiguchi@ah.jp.nec.com'
This patch add KPF_ZERO_PAGE flag for zero_page,
so that userspace process can notice zero_page from
/proc/kpageflags, and then do memory analysis more accurately.
Signed-off-by: Yalin Wang <yalin.wang@sonymobile.com>
---
fs/proc/page.c | 3 +++
include/uapi/linux/kernel-page-flags.h | 1 +
2 files changed, 4 insertions(+)
diff --git a/fs/proc/page.c b/fs/proc/page.c
index 1e3187d..120dbf7 100644
--- a/fs/proc/page.c
+++ b/fs/proc/page.c
@@ -136,6 +136,9 @@ u64 stable_page_flags(struct page *page)
if (PageBalloon(page))
u |= 1 << KPF_BALLOON;
+ if (is_zero_pfn(page_to_pfn(page)))
+ u |= 1 << KPF_ZERO_PAGE;
+
u |= kpf_copy_bit(k, KPF_LOCKED, PG_locked);
u |= kpf_copy_bit(k, KPF_SLAB, PG_slab);
diff --git a/include/uapi/linux/kernel-page-flags.h b/include/uapi/linux/kernel-page-flags.h
index 2f96d23..a6c4962 100644
--- a/include/uapi/linux/kernel-page-flags.h
+++ b/include/uapi/linux/kernel-page-flags.h
@@ -32,6 +32,7 @@
#define KPF_KSM 21
#define KPF_THP 22
#define KPF_BALLOON 23
+#define KPF_ZERO_PAGE 24
#endif /* _UAPILINUX_KERNEL_PAGE_FLAGS_H */
--
2.1.3
^ permalink raw reply [flat|nested] 9+ messages in thread
* [RFC V2] mm:add KPF_ZERO_PAGE flag for /proc/kpageflags
2014-12-05 8:57 [RFC] mm:add KPF_ZERO_PAGE flag for /proc/kpageflags Wang, Yalin
@ 2014-12-05 10:21 ` Wang, Yalin
2014-12-08 7:47 ` [PATCH] mm:add VM_BUG_ON() for page_mapcount() Wang, Yalin
0 siblings, 1 reply; 9+ messages in thread
From: Wang, Yalin @ 2014-12-05 10:21 UTC (permalink / raw)
To: 'linux-kernel@vger.kernel.org',
'linux-mm@kvack.org',
'linux-arm-kernel@lists.infradead.org',
'Konstantin Khlebnikov',
'akpm@linux-foundation.org',
'n-horiguchi@ah.jp.nec.com',
'Konstantin Khlebnikov'
This patch add KPF_ZERO_PAGE flag for zero_page,
so that userspace process can notice zero_page from
/proc/kpageflags, and then do memory analysis more accurately.
Signed-off-by: Yalin Wang <yalin.wang@sonymobile.com>
---
fs/proc/page.c | 14 +++++++++++---
include/linux/huge_mm.h | 12 ++++++++++++
include/uapi/linux/kernel-page-flags.h | 1 +
mm/huge_memory.c | 7 +------
4 files changed, 25 insertions(+), 9 deletions(-)
diff --git a/fs/proc/page.c b/fs/proc/page.c
index 1e3187d..dbe5630 100644
--- a/fs/proc/page.c
+++ b/fs/proc/page.c
@@ -5,6 +5,7 @@
#include <linux/ksm.h>
#include <linux/mm.h>
#include <linux/mmzone.h>
+#include <linux/huge_mm.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/hugetlb.h>
@@ -121,9 +122,16 @@ u64 stable_page_flags(struct page *page)
* just checks PG_head/PG_tail, so we need to check PageLRU/PageAnon
* to make sure a given page is a thp, not a non-huge compound page.
*/
- else if (PageTransCompound(page) && (PageLRU(compound_head(page)) ||
- PageAnon(compound_head(page))))
- u |= 1 << KPF_THP;
+ else if (PageTransCompound(page)) {
+ struct page *head = compound_head(page);
+
+ if (PageLRU(head) || PageAnon(head))
+ u |= 1 << KPF_THP;
+ else if (is_huge_zero_page(head))
+ u |= 1 << KPF_ZERO_PAGE;
+ } else if (is_zero_pfn(page_to_pfn(page)))
+ u |= 1 << KPF_ZERO_PAGE;
+
/*
* Caveats on high order pages: page->_count will only be set
diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h
index ad9051b..f10b20f 100644
--- a/include/linux/huge_mm.h
+++ b/include/linux/huge_mm.h
@@ -157,6 +157,13 @@ static inline int hpage_nr_pages(struct page *page)
extern int do_huge_pmd_numa_page(struct mm_struct *mm, struct vm_area_struct *vma,
unsigned long addr, pmd_t pmd, pmd_t *pmdp);
+extern struct page *huge_zero_page;
+
+static inline bool is_huge_zero_page(struct page *page)
+{
+ return ACCESS_ONCE(huge_zero_page) == page;
+}
+
#else /* CONFIG_TRANSPARENT_HUGEPAGE */
#define HPAGE_PMD_SHIFT ({ BUILD_BUG(); 0; })
#define HPAGE_PMD_MASK ({ BUILD_BUG(); 0; })
@@ -206,6 +213,11 @@ static inline int do_huge_pmd_numa_page(struct mm_struct *mm, struct vm_area_str
return 0;
}
+static inline bool is_huge_zero_page(struct page *page)
+{
+ return false;
+}
+
#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
#endif /* _LINUX_HUGE_MM_H */
diff --git a/include/uapi/linux/kernel-page-flags.h b/include/uapi/linux/kernel-page-flags.h
index 2f96d23..a6c4962 100644
--- a/include/uapi/linux/kernel-page-flags.h
+++ b/include/uapi/linux/kernel-page-flags.h
@@ -32,6 +32,7 @@
#define KPF_KSM 21
#define KPF_THP 22
#define KPF_BALLOON 23
+#define KPF_ZERO_PAGE 24
#endif /* _UAPILINUX_KERNEL_PAGE_FLAGS_H */
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index de98415..d7bc7a5 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -171,12 +171,7 @@ static int start_khugepaged(void)
}
static atomic_t huge_zero_refcount;
-static struct page *huge_zero_page __read_mostly;
-
-static inline bool is_huge_zero_page(struct page *page)
-{
- return ACCESS_ONCE(huge_zero_page) == page;
-}
+struct page *huge_zero_page __read_mostly;
static inline bool is_huge_zero_pmd(pmd_t pmd)
{
--
2.1.3
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH] mm:add VM_BUG_ON() for page_mapcount()
2014-12-05 10:21 ` [RFC V2] " Wang, Yalin
@ 2014-12-08 7:47 ` Wang, Yalin
2014-12-08 11:50 ` Kirill A. Shutemov
0 siblings, 1 reply; 9+ messages in thread
From: Wang, Yalin @ 2014-12-08 7:47 UTC (permalink / raw)
To: 'linux-kernel@vger.kernel.org',
'linux-mm@kvack.org',
'linux-arm-kernel@lists.infradead.org',
'akpm@linux-foundation.org', 'riel@redhat.com',
'nasa4836@gmail.com', 'sasha.levin@oracle.com'
This patch add VM_BUG_ON() for slab page,
because _mapcount is an union with slab struct in struct page,
avoid access _mapcount if this page is a slab page.
Also remove the unneeded bracket.
Signed-off-by: Yalin Wang <yalin.wang@sonymobile.com>
---
include/linux/mm.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 11b65cf..34124c4 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -373,7 +373,8 @@ static inline void reset_page_mapcount(struct page *page)
static inline int page_mapcount(struct page *page)
{
- return atomic_read(&(page)->_mapcount) + 1;
+ VM_BUG_ON(PageSlab(page));
+ return atomic_read(&page->_mapcount) + 1;
}
static inline int page_count(struct page *page)
--
2.1.3
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] mm:add VM_BUG_ON() for page_mapcount()
2014-12-08 7:47 ` [PATCH] mm:add VM_BUG_ON() for page_mapcount() Wang, Yalin
@ 2014-12-08 11:50 ` Kirill A. Shutemov
0 siblings, 0 replies; 9+ messages in thread
From: Kirill A. Shutemov @ 2014-12-08 11:50 UTC (permalink / raw)
To: Wang, Yalin
Cc: 'linux-kernel@vger.kernel.org',
'linux-mm@kvack.org',
'linux-arm-kernel@lists.infradead.org',
'akpm@linux-foundation.org', 'riel@redhat.com',
'nasa4836@gmail.com', 'sasha.levin@oracle.com'
On Mon, Dec 08, 2014 at 03:47:47PM +0800, Wang, Yalin wrote:
> This patch add VM_BUG_ON() for slab page,
> because _mapcount is an union with slab struct in struct page,
> avoid access _mapcount if this page is a slab page.
> Also remove the unneeded bracket.
>
> Signed-off-by: Yalin Wang <yalin.wang@sonymobile.com>
> ---
> include/linux/mm.h | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 11b65cf..34124c4 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -373,7 +373,8 @@ static inline void reset_page_mapcount(struct page *page)
>
> static inline int page_mapcount(struct page *page)
> {
> - return atomic_read(&(page)->_mapcount) + 1;
> + VM_BUG_ON(PageSlab(page));
VM_BUG_ON_PAGE(), please.
--
Kirill A. Shutemov
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-06-09 16:14 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-08 9:33 [PATCH] mm:add VM_BUG_ON() for page_mapcount() Hillf Danton
2014-12-08 9:51 ` Wang, Yalin
2014-12-08 9:58 ` [PATCH V2] " Wang, Yalin
2014-12-08 9:59 ` [PATCH V3] mm:add VM_BUG_ON_PAGE() " Wang, Yalin
2014-12-08 11:54 ` Kirill A. Shutemov
2014-12-09 3:18 ` Hillf Danton
2015-06-09 16:14 ` Vlastimil Babka
-- strict thread matches above, loose matches on Subject: below --
2014-12-05 8:57 [RFC] mm:add KPF_ZERO_PAGE flag for /proc/kpageflags Wang, Yalin
2014-12-05 10:21 ` [RFC V2] " Wang, Yalin
2014-12-08 7:47 ` [PATCH] mm:add VM_BUG_ON() for page_mapcount() Wang, Yalin
2014-12-08 11:50 ` Kirill A. Shutemov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).