| From 3e18be4c749cfd01400c655f6ab2b993af9096c9 Mon Sep 17 00:00:00 2001 |
| From: Chanho Min <chanho.min@lge.com> |
| Date: Sat, 4 Jan 2020 12:59:36 -0800 |
| Subject: [PATCH] mm/zsmalloc.c: fix the migrated zspage statistics. |
| |
| commit ac8f05da5174c560de122c499ce5dfb5d0dfbee5 upstream. |
| |
| When zspage is migrated to the other zone, the zone page state should be |
| updated as well, otherwise the NR_ZSPAGE for each zone shows wrong |
| counts including proc/zoneinfo in practice. |
| |
| Link: http://lkml.kernel.org/r/1575434841-48009-1-git-send-email-chanho.min@lge.com |
| Fixes: 91537fee0013 ("mm: add NR_ZSMALLOC to vmstat") |
| Signed-off-by: Chanho Min <chanho.min@lge.com> |
| Signed-off-by: Jinsuk Choi <jjinsuk.choi@lge.com> |
| Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> |
| Acked-by: Minchan Kim <minchan@kernel.org> |
| Cc: <stable@vger.kernel.org> [4.9+] |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c |
| index 7d62ef2daf83..b85492d25ba2 100644 |
| --- a/mm/zsmalloc.c |
| +++ b/mm/zsmalloc.c |
| @@ -2092,6 +2092,11 @@ static int zs_page_migrate(struct address_space *mapping, struct page *newpage, |
| zs_pool_dec_isolated(pool); |
| } |
| |
| + if (page_zone(newpage) != page_zone(page)) { |
| + dec_zone_page_state(page, NR_ZSPAGES); |
| + inc_zone_page_state(newpage, NR_ZSPAGES); |
| + } |
| + |
| reset_page(page); |
| put_page(page); |
| page = newpage; |
| -- |
| 2.7.4 |
| |