Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1951806imm; Thu, 12 Jul 2018 10:28:27 -0700 (PDT) X-Google-Smtp-Source: AAOMgpeNFMdTbPIjypjTlSroFpxBsvQfTv/AdJsZppU53qllI+cFtRpUhMPF9l8WUrz3glfi/Is8 X-Received: by 2002:a17:902:b20d:: with SMTP id t13-v6mr3053694plr.121.1531416507175; Thu, 12 Jul 2018 10:28:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531416507; cv=none; d=google.com; s=arc-20160816; b=IjGBnOKpqCjrZ03CmWTvLgUQsUMxyRPI7mbsQdAthRgyH3DmoNbagca64heBR6+SzO HrtWiGGbjQW2Utuf+YMq64yLDKul4l5S/4B8EAeWI1FvXC6hxgVDPx4o8skDa4ox8Pfx gN+GTIgN8liv4OO1Qzkw6eLQoKnG52I36G30cnIZEdYH2+dQDVcIPNW20aTjP9BKhXGG LEbxRhInWk8aW/QIE4iaYCkH2e5H+lyVEh1Hb2q199mNctzeWAIEVzYPdnXNskXfd/TY qcGAnad1zUEqTWQnfvzDnBKjIuFDWm5DBzqsfRKuUU7KmtAnJJRxw9sls1UKugZSFYJJ D5BQ== 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:dkim-signature:arc-authentication-results; bh=MB0JcxuTLfjEgf80Dz+nMnYicOFdIkPWH7p5+rE/WoA=; b=khxVHS4WcvTLlVTQlJizo5nRwSXIdYrEqUhKSj5IzAPBlorCh1ulWaJO2Hb+bhvmga +Bx0f+Nb8DLnBCSxpE4PtDVkK5W06ghTt46I04mhqJiP69VrgYReJWCDjrlnmCklM1KW DbkKpBvqtooQSn80uqNeZkucLAj2eA/LvaeGxyi5o83Y/bI/HQdRSZMEvg1mWyYVKgpR tMKNDYGGSj2gND/Oahj9YACujIKXd0EiOL1vv+tVUBMbgRHfzlJ0AUvMVrFshMhtgQ/U QqFuYZW/Trb190gT7VpMFogWREHExRs82/1U+B2dZxHVyuRubPQJDyPSYmXqreRdeQtM Bg5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@cmpxchg.org header.s=x header.b=x2YUk0uI; 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=cmpxchg.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r65-v6si24096948pfe.298.2018.07.12.10.28.11; Thu, 12 Jul 2018 10:28:27 -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; dkim=fail header.i=@cmpxchg.org header.s=x header.b=x2YUk0uI; 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=cmpxchg.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732573AbeGLRiA (ORCPT + 99 others); Thu, 12 Jul 2018 13:38:00 -0400 Received: from gum.cmpxchg.org ([85.214.110.215]:44906 "EHLO gum.cmpxchg.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726596AbeGLRiA (ORCPT ); Thu, 12 Jul 2018 13:38:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=cmpxchg.org ; s=x; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender: Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=MB0JcxuTLfjEgf80Dz+nMnYicOFdIkPWH7p5+rE/WoA=; b=x2YUk0uIXeGwJU6n8JJ8Qh+LhF 2hRuZs0nJ3tgZ958KR+TPEUQyBMiWXv8gCELym3Co3rlB1/6sD/z4djvaZWCShd1PPmkyxx2rNezs lph879F5+bd73GWIIyPCV3q3uHA4NFuoqQBgQan0s/QIieZmh/T2HdbbJGdVWE8JSZ30=; From: Johannes Weiner To: Ingo Molnar , Peter Zijlstra , Andrew Morton , Linus Torvalds Cc: Tejun Heo , Suren Baghdasaryan , Vinayak Menon , Christopher Lameter , Mike Galbraith , Shakeel Butt , linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@fb.com Subject: [PATCH 01/10] mm: workingset: don't drop refault information prematurely Date: Thu, 12 Jul 2018 13:29:33 -0400 Message-Id: <20180712172942.10094-2-hannes@cmpxchg.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180712172942.10094-1-hannes@cmpxchg.org> References: <20180712172942.10094-1-hannes@cmpxchg.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Johannes Weiner If we just keep enough refault information to match the CURRENT page cache during reclaim time, we could lose a lot of events when there is only a temporary spike in non-cache memory consumption that pushes out all the cache. Once cache comes back, we won't see those refaults. They might not be actionable for LRU aging, but we want to know about them for measuring memory pressure. Signed-off-by: Johannes Weiner --- mm/workingset.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mm/workingset.c b/mm/workingset.c index 40ee02c83978..53759a3cf99a 100644 --- a/mm/workingset.c +++ b/mm/workingset.c @@ -364,7 +364,7 @@ static unsigned long count_shadow_nodes(struct shrinker *shrinker, { unsigned long max_nodes; unsigned long nodes; - unsigned long cache; + unsigned long pages; /* list_lru lock nests inside the IRQ-safe i_pages lock */ local_irq_disable(); @@ -393,14 +393,14 @@ static unsigned long count_shadow_nodes(struct shrinker *shrinker, * * PAGE_SIZE / radix_tree_nodes / node_entries * 8 / PAGE_SIZE */ - if (sc->memcg) { - cache = mem_cgroup_node_nr_lru_pages(sc->memcg, sc->nid, - LRU_ALL_FILE); - } else { - cache = node_page_state(NODE_DATA(sc->nid), NR_ACTIVE_FILE) + - node_page_state(NODE_DATA(sc->nid), NR_INACTIVE_FILE); - } - max_nodes = cache >> (RADIX_TREE_MAP_SHIFT - 3); +#ifdef CONFIG_MEMCG + if (sc->memcg) + pages = page_counter_read(&sc->memcg->memory); + else +#endif + pages = node_present_pages(sc->nid); + + max_nodes = pages >> (RADIX_TREE_MAP_SHIFT - 3); if (nodes <= max_nodes) return 0; -- 2.18.0