From patchwork Wed Dec 4 04:47:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chanho Min X-Patchwork-Id: 11272109 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B6C6613A4 for ; Wed, 4 Dec 2019 04:47:43 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 98218207DD for ; Wed, 4 Dec 2019 04:47:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 98218207DD Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lge.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id BB4F96B08BA; Tue, 3 Dec 2019 23:47:42 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id B65C26B08BB; Tue, 3 Dec 2019 23:47:42 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AA33F6B08BC; Tue, 3 Dec 2019 23:47:42 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0215.hostedemail.com [216.40.44.215]) by kanga.kvack.org (Postfix) with ESMTP id 98FF56B08BA for ; Tue, 3 Dec 2019 23:47:42 -0500 (EST) Received: from smtpin13.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with SMTP id 63953180AD817 for ; Wed, 4 Dec 2019 04:47:42 +0000 (UTC) X-FDA: 76226225964.13.wrist28_7d5a972045237 X-Spam-Summary: 1,0,0,,d41d8cd98f00b204,chanho.min@lge.com,:minchan@kernel.org:ngupta@vflare.org:sergey.senozhatsky.work@gmail.com:akpm@linux-foundation.org::linux-kernel@vger.kernel.org:seungho1.park@lge.com:inkyu.hwang@lge.com:jjinsuk.choi@lge.com:stable@vger.kernel.org:chanho.min@lge.com,RULES_HIT:30045:30054,0,RBL:156.147.23.51:@lge.com:.lbl8.mailshell.net-62.18.1.100 64.10.201.10,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fp,MSBL:0,DNSBL:none,Custom_rules:0:0:0,LFtime:24,LUA_SUMMARY:none X-HE-Tag: wrist28_7d5a972045237 X-Filterd-Recvd-Size: 2280 Received: from lgeamrelo11.lge.com (lgeamrelo11.lge.com [156.147.23.51]) by imf39.hostedemail.com (Postfix) with ESMTP for ; Wed, 4 Dec 2019 04:47:41 +0000 (UTC) Received: from unknown (HELO lgeamrelo02.lge.com) (156.147.1.126) by 156.147.23.51 with ESMTP; 4 Dec 2019 13:47:39 +0900 X-Original-SENDERIP: 156.147.1.126 X-Original-MAILFROM: chanho.min@lge.com Received: from unknown (HELO localhost.localdomain) (10.178.31.96) by 156.147.1.126 with ESMTP; 4 Dec 2019 13:47:38 +0900 X-Original-SENDERIP: 10.178.31.96 X-Original-MAILFROM: chanho.min@lge.com From: Chanho Min To: Minchan Kim , Nitin Gupta , Sergey Senozhatsky , Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, seungho1.park@lge.com, Inkyu Hwang , Jinsuk Choi , stable@vger.kernel.org, Chanho Min Subject: [PATCH RESEND] mm/zsmalloc.c: fix the migrated zspage statistics. Date: Wed, 4 Dec 2019 13:47:21 +0900 Message-Id: <1575434841-48009-1-git-send-email-chanho.min@lge.com> X-Mailer: git-send-email 2.7.4 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: 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. Cc: [4.9+] Fixes: 91537fee0013 ("mm: add NR_ZSMALLOC to vmstat") Signed-off-by: Chanho Min Signed-off-by: Jinsuk Choi Reviewed-by: Sergey Senozhatsky Acked-by: Minchan Kim --- mm/zsmalloc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index 2b2b9aa..22d17ec 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -2069,6 +2069,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;