Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp1282188img; Fri, 22 Mar 2019 21:47:50 -0700 (PDT) X-Google-Smtp-Source: APXvYqy8QbZoWEaEGsRhhAP3KQQDL6UwhsQho9k4xcM3wcxb+lUccUrmw7oNGNnPD/5Cgwtug9X1 X-Received: by 2002:a62:1881:: with SMTP id 123mr12802348pfy.25.1553316470559; Fri, 22 Mar 2019 21:47:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553316470; cv=none; d=google.com; s=arc-20160816; b=OHkdAl17+BqBTIxWCogdNGpoBtWoIN+bPu96xLFGC5Wd5zzZJbIcKmlh5nk8w7RkBp zeQHfWZaiW18eGcDdYwfTJaA7rKDDzFCMsIggxhIGb3PdxsNhArD5fdnS3Dlfh00klge zoYi1UC4kuUwa0clGnZhROj0P+TzQ1OHkhAMDg7JXNclgVq5952/n6H9C2SrNPn5QuKT VidtxZ0gFmq6dxwbksbyt1GJF+NcY0/bZhsuBE5dCf1tUl/fJjfn4aTM3OeBQbg7WtPs Aptih5VOVgB4ZgAk7W44B8vaghDlBIzjdeh7p/+A0PmvrP5nDbFfKJ7gjn/i2jgbePv4 G6/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=GbACvGM2k0XChSgXP2m0OAFhhF6wTX5VAiPEQe8PPuA=; b=fj2YvRrH6Dxvq2/Ys1Y1zdj1BEyMpYXQUIrPSHqu2LrqM+PzOscKHHS++o3+/NkFeu oMBTVBfsK5sQdPWHjBcbaXOCGTPgzTdopbnV6u+A56Yo5xfRlEHzZtbZ0NIkIIDsK3yZ UJD9zUAlCvdcj1cQaq7//ZwIWgPFwmpSUA25SkJxKYiFSnmvdpWHjX4q0/MOIzwVfoCf RO/cfC3IIX6VuUYQNKD6KUN3X1tanK8/3DS3Lll0TD2GaRWs/SVhaJ0Wzo/fFLX1pZkc AWxwVp36YnMQ/tiSfZ2wESfkmkQqXXs5BjM3T4FLjNXOinlTc843sCoVCFMv1yxxWOAw Cjjw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u193si3778818pgc.410.2019.03.22.21.47.35; Fri, 22 Mar 2019 21:47:50 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727598AbfCWEqC (ORCPT + 99 others); Sat, 23 Mar 2019 00:46:02 -0400 Received: from out30-132.freemail.mail.aliyun.com ([115.124.30.132]:44016 "EHLO out30-132.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726029AbfCWEqB (ORCPT ); Sat, 23 Mar 2019 00:46:01 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R981e4;CH=green;DM=||false|;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01f04455;MF=yang.shi@linux.alibaba.com;NM=1;PH=DS;RN=14;SR=0;TI=SMTPD_---0TNPuxAM_1553316293; Received: from e19h19392.et15sqa.tbsite.net(mailfrom:yang.shi@linux.alibaba.com fp:SMTPD_---0TNPuxAM_1553316293) by smtp.aliyun-inc.com(127.0.0.1); Sat, 23 Mar 2019 12:45:03 +0800 From: Yang Shi To: mhocko@suse.com, mgorman@techsingularity.net, riel@surriel.com, hannes@cmpxchg.org, akpm@linux-foundation.org, dave.hansen@intel.com, keith.busch@intel.com, dan.j.williams@intel.com, fengguang.wu@intel.com, fan.du@intel.com, ying.huang@intel.com Cc: yang.shi@linux.alibaba.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 07/10] mm: vmscan: add page demotion counter Date: Sat, 23 Mar 2019 12:44:32 +0800 Message-Id: <1553316275-21985-8-git-send-email-yang.shi@linux.alibaba.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1553316275-21985-1-git-send-email-yang.shi@linux.alibaba.com> References: <1553316275-21985-1-git-send-email-yang.shi@linux.alibaba.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Demoted pages are counted into reclaim_state->nr_demoted instead of nr_reclaimed since they are not reclaimed actually. They are still in memory, but just migrated to PMEM. Add pgdemote_kswapd and pgdemote_direct VM counters showed in /proc/vmstat. Signed-off-by: Yang Shi --- include/linux/vm_event_item.h | 2 ++ include/linux/vmstat.h | 1 + mm/vmscan.c | 14 ++++++++++++++ mm/vmstat.c | 2 ++ 4 files changed, 19 insertions(+) diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index 47a3441..499a3aa 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -32,6 +32,8 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, PGREFILL, PGSTEAL_KSWAPD, PGSTEAL_DIRECT, + PGDEMOTE_KSWAPD, + PGDEMOTE_DIRECT, PGSCAN_KSWAPD, PGSCAN_DIRECT, PGSCAN_DIRECT_THROTTLE, diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index 2db8d60..eb5d21c 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -29,6 +29,7 @@ struct reclaim_stat { unsigned nr_activate; unsigned nr_ref_keep; unsigned nr_unmap_fail; + unsigned nr_demoted; }; #ifdef CONFIG_VM_EVENT_COUNTERS diff --git a/mm/vmscan.c b/mm/vmscan.c index bdcab6b..3c7ba7e 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -1286,6 +1286,10 @@ static unsigned long shrink_page_list(struct list_head *page_list, if (has_nonram_online()) { list_add(&page->lru, &demote_pages); + if (PageTransHuge(page)) + stat->nr_demoted += HPAGE_PMD_NR; + else + stat->nr_demoted++; unlock_page(page); continue; } @@ -1523,7 +1527,17 @@ static unsigned long shrink_page_list(struct list_head *page_list, putback_movable_pages(&demote_pages); list_splice(&ret_pages, &demote_pages); + + if (err > 0) + stat->nr_demoted -= err; + else + stat->nr_demoted = 0; } + + if (current_is_kswapd()) + __count_vm_events(PGDEMOTE_KSWAPD, stat->nr_demoted); + else + __count_vm_events(PGDEMOTE_DIRECT, stat->nr_demoted); } mem_cgroup_uncharge_list(&free_pages); diff --git a/mm/vmstat.c b/mm/vmstat.c index 36b56f8..0e863e7 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1192,6 +1192,8 @@ int fragmentation_index(struct zone *zone, unsigned int order) "pgrefill", "pgsteal_kswapd", "pgsteal_direct", + "pgdemote_kswapd", + "pgdemote_direct", "pgscan_kswapd", "pgscan_direct", "pgscan_direct_throttle", -- 1.8.3.1