Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1604427pxa; Thu, 20 Aug 2020 15:59:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwAxgHlv6gJHpFQ4+M8aIDsyR1hPtuULz+86foGFFz/Aw8tB8TICJ/nBXhoV9wZGE3i7VIv X-Received: by 2002:aa7:cccb:: with SMTP id y11mr149485edt.15.1597964343451; Thu, 20 Aug 2020 15:59:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597964343; cv=none; d=google.com; s=arc-20160816; b=fCUf0P/2iwQVL3eSVP1ndUtwcOYZuLWz8q3DEY75/GxA3Rm8Ki1QzXJEzW+KDSCbi5 cidpr9bi2Rl/DkgU0uSUQZu34ckb0+0jCbBAQduYk1Kp6jfgG1JQ1GmUGXPRD4ivE2O9 kgfE8+FmmxkwsqjH+WYGsHIDrYSc9Gsv48K/mqr2Qbuy3ygq4L9fZDyf0MJ2g+ilPgWg OJ0krGilqvDpVrngfNMW0JimWnpo78JCgXtEq2p1lCJCTtlTAXLll89/mV8YIdtAC56n ckzitkWtKOG3zoS2geN7nnbRVlyU6j6+I7g/E4PNi6uBZ7O/Ls9hyTxP3GvZ6xWr3HLl CWhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=aim7ZV7VxtAqstOLObh/dmvDlBTIjwC/vQNJeLjw2SY=; b=dLAwG31fBdl0jy7hnnIrHms80t1QRJzn4SHBSQn0vIBsWv03vEf228BPkvtYkKIomG LXPDXsLFai2pjnl6sL+ZYPIwxAk778aNiLAJ/i8uQgDjyTtmiuz8fheCzRHs+ohMNfz/ YHXoB00tqsPwyJ8SukQb6A1uzjc8Lcx0H4Jht+eknTdYTdUKphAuWx7bfOig2EeIrQ6O ks+1If2aLw/7zKRC4ppR6AldIi2EGjXLjheyLSB8RuaJTrRlAaaANxixYWjHGiGTGlr+ Ij2huAJ5nRrKKwiLuJ1nQP0cc/9z3L6UsoFfoClRK1kbARUGWgHPhyBKhk5nF4MKRz+Q 6W3A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=k7Zg9x+t; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id do5si2520697ejc.612.2020.08.20.15.58.38; Thu, 20 Aug 2020 15:59:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=k7Zg9x+t; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728700AbgHTW43 (ORCPT + 99 others); Thu, 20 Aug 2020 18:56:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40662 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728608AbgHTW42 (ORCPT ); Thu, 20 Aug 2020 18:56:28 -0400 Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 069D8C061385 for ; Thu, 20 Aug 2020 15:56:28 -0700 (PDT) Received: by mail-ed1-x541.google.com with SMTP id di22so2926321edb.12 for ; Thu, 20 Aug 2020 15:56:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=aim7ZV7VxtAqstOLObh/dmvDlBTIjwC/vQNJeLjw2SY=; b=k7Zg9x+tf+PmQarKuJnmu7Zwgp9XjnbEqKdxZSAL93vsY5Bc8y7XC5gDsRf7vb/nhr Yc9bO2RL1EHlua9v6qybcCDd+lQ3pFyHYAYMRarzK9QkiZhiLe1R177NiOHCG5W8hnA/ 6LJ12Q0oH/h1wF3qwUdFH5WsLLntlRwyXATzzGAFLeTiVHY7CT64faa1RLTC1xuCzTA3 52mwyV0U8/ItJZky9BqT/HnoE23xX6P+Ehx8JL7HXYy//EBM+XYTf0oeNy43rhENuPts wgK8Q00uYl2ZichfLQEq24UuYAVdibEKlafnaSV+MuGczzV5SqQ4YkW52pReCZaW4PoG IWUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=aim7ZV7VxtAqstOLObh/dmvDlBTIjwC/vQNJeLjw2SY=; b=ap3sU64n3qsrCXyqFX5A3ev+ZrVbK0JtJsPQvqsLZhbPTuA2hsPTK+9xtr3mCT9JW4 m1BBCYk3S2S66EJOgGnzfBTqcc4uHUSTphWaFbEw+EDyfH2IL9d4mnfmSMNyUSLx1QNY 52cQRCilnHUtmEFKW1o9FXKLBwY+BF4EYnffvcLVYrGZQ3n2xkdyf4nuWejhuTmvxdSU IQtOBOr8vwonKIk5+a//sBbDw+rH4T+789iwi4z1+9mT4VaRJOXNuBVICr+iRkbDtzSp zHRSH44Nih3Dn5TmZgK4JiO/O7q2lSpkj/YAVw4JvuYi50qPkEaUnhQf6b98sxp2R7JH GWtQ== X-Gm-Message-State: AOAM530V9KGJMJHJrHfSJqDEJjgy+9nyDWL0ogkomTgfa+rs2Jgg4ITY x3Mki6FX9Wv1iK7cV58BvR85TE60Q/EP916li8s= X-Received: by 2002:aa7:d9d0:: with SMTP id v16mr144465eds.137.1597964186662; Thu, 20 Aug 2020 15:56:26 -0700 (PDT) MIME-Version: 1.0 References: <20200818184122.29C415DF@viggo.jf.intel.com> <20200818184133.DCF58B5F@viggo.jf.intel.com> In-Reply-To: <20200818184133.DCF58B5F@viggo.jf.intel.com> From: Yang Shi Date: Thu, 20 Aug 2020 15:56:15 -0700 Message-ID: Subject: Re: [RFC][PATCH 6/9] mm/vmscan: add page demotion counter To: Dave Hansen Cc: Linux Kernel Mailing List , Yang Shi , David Rientjes , Huang Ying , Dan Williams Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 18, 2020 at 11:53 AM Dave Hansen wrote: > > > From: Yang Shi > > Account the number of demoted pages into reclaim_state->nr_demoted. > > Add pgdemote_kswapd and pgdemote_direct VM counters showed in > /proc/vmstat. BTW we'd better add promotion counters as well. The NUMA balancing could promote pages to local nodes without any modification. We could argue it may be optimized for PMEM usecases, but it does work. And it makes the patchset more self-contained. You could refer to: https://lore.kernel.org/linux-mm/1560468577-101178-10-git-send-email-yang.shi@linux.alibaba.com/ > > [ daveh: > - __count_vm_events() a bit, and made them look at the THP > size directly rather than getting data from migrate_pages() > ] > > Signed-off-by: Yang Shi > Signed-off-by: Dave Hansen > Cc: David Rientjes > Cc: Huang Ying > Cc: Dan Williams > --- > > b/include/linux/vm_event_item.h | 2 ++ > b/mm/vmscan.c | 6 ++++++ > b/mm/vmstat.c | 2 ++ > 3 files changed, 10 insertions(+) > > diff -puN include/linux/vm_event_item.h~mm-vmscan-add-page-demotion-counter include/linux/vm_event_item.h > --- a/include/linux/vm_event_item.h~mm-vmscan-add-page-demotion-counter 2020-08-18 11:36:54.062583176 -0700 > +++ b/include/linux/vm_event_item.h 2020-08-18 11:36:54.070583176 -0700 > @@ -32,6 +32,8 @@ enum vm_event_item { PGPGIN, PGPGOUT, PS > PGREFILL, > PGSTEAL_KSWAPD, > PGSTEAL_DIRECT, > + PGDEMOTE_KSWAPD, > + PGDEMOTE_DIRECT, > PGSCAN_KSWAPD, > PGSCAN_DIRECT, > PGSCAN_DIRECT_THROTTLE, > diff -puN mm/vmscan.c~mm-vmscan-add-page-demotion-counter mm/vmscan.c > --- a/mm/vmscan.c~mm-vmscan-add-page-demotion-counter 2020-08-18 11:36:54.064583176 -0700 > +++ b/mm/vmscan.c 2020-08-18 11:36:54.072583176 -0700 > @@ -147,6 +147,7 @@ struct scan_control { > unsigned int immediate; > unsigned int file_taken; > unsigned int taken; > + unsigned int demoted; > } nr; > > /* for recording the reclaimed slab by now */ > @@ -1146,6 +1147,11 @@ static unsigned int demote_page_list(str > list_splice(ret_list, demote_pages); > } > > + if (current_is_kswapd()) > + __count_vm_events(PGDEMOTE_KSWAPD, nr_succeeded); > + else > + __count_vm_events(PGDEMOTE_DIRECT, nr_succeeded); > + > return nr_succeeded; > } > > diff -puN mm/vmstat.c~mm-vmscan-add-page-demotion-counter mm/vmstat.c > --- a/mm/vmstat.c~mm-vmscan-add-page-demotion-counter 2020-08-18 11:36:54.067583176 -0700 > +++ b/mm/vmstat.c 2020-08-18 11:36:54.072583176 -0700 > @@ -1200,6 +1200,8 @@ const char * const vmstat_text[] = { > "pgrefill", > "pgsteal_kswapd", > "pgsteal_direct", > + "pgdemote_kswapd", > + "pgdemote_direct", > "pgscan_kswapd", > "pgscan_direct", > "pgscan_direct_throttle", > _