projects
/
platform
/
kernel
/
linux-rpi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
8cce547
)
mm/huge_memory: fix page_trans_huge_mapcount assumption of THP size
author
Matthew Wilcox (Oracle)
<willy@infradead.org>
Fri, 16 Oct 2020 03:05:39 +0000
(20:05 -0700)
committer
Linus Torvalds
<torvalds@linux-foundation.org>
Fri, 16 Oct 2020 18:11:15 +0000
(11:11 -0700)
Ask the page what size it is instead of assuming it's PMD size.
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: SeongJae Park <sjpark@amazon.de>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Huang Ying <ying.huang@intel.com>
Link:
https://lkml.kernel.org/r/20200908195539.25896-7-willy@infradead.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/huge_memory.c
patch
|
blob
|
history
diff --git
a/mm/huge_memory.c
b/mm/huge_memory.c
index 5934ef722e28403c0a4b835069ee3340042ac61c..6fb75df0e8c060aa2c97167fb7c63de95e7cbb7c 100644
(file)
--- a/
mm/huge_memory.c
+++ b/
mm/huge_memory.c
@@
-2558,14
+2558,14
@@
int page_trans_huge_mapcount(struct page *page, int *total_mapcount)
page = compound_head(page);
_total_mapcount = ret = 0;
- for (i = 0; i <
HPAGE_PMD_NR
; i++) {
+ for (i = 0; i <
thp_nr_pages(page)
; i++) {
mapcount = atomic_read(&page[i]._mapcount) + 1;
ret = max(ret, mapcount);
_total_mapcount += mapcount;
}
if (PageDoubleMap(page)) {
ret -= 1;
- _total_mapcount -=
HPAGE_PMD_NR
;
+ _total_mapcount -=
thp_nr_pages(page)
;
}
mapcount = compound_mapcount(page);
ret += mapcount;