From patchwork Thu Jul 12 17:29:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Weiner X-Patchwork-Id: 10522023 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 5C45A602C8 for ; Thu, 12 Jul 2018 17:27:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3CDD129AC1 for ; Thu, 12 Jul 2018 17:27:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3089029AD0; Thu, 12 Jul 2018 17:27:31 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4393629AC1 for ; Thu, 12 Jul 2018 17:27:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 464A76B0003; Thu, 12 Jul 2018 13:27:29 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 415646B0007; Thu, 12 Jul 2018 13:27:29 -0400 (EDT) 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 2B7C16B0008; Thu, 12 Jul 2018 13:27:29 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by kanga.kvack.org (Postfix) with ESMTP id C6DE76B0003 for ; Thu, 12 Jul 2018 13:27:28 -0400 (EDT) Received: by mail-ed1-f70.google.com with SMTP id s3-v6so907218eds.15 for ; Thu, 12 Jul 2018 10:27:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references; bh=MB0JcxuTLfjEgf80Dz+nMnYicOFdIkPWH7p5+rE/WoA=; b=DAvYsDbnUtkAjVbGUExCFiG4nCo5HHNr2Bj64YGUvXZhVhCIzotazGXC5gq6velAmY u6S565xlcm4t6caOjxG8Um5/2eL0eAm/GejFB29pkLaaHYNfFrxF+aYMrYVbDtP7bfUp BOgGPXJ2ym7IoaVzw30d5DWOoAxuILlvHm+NloQxafjm65s9h2dYIE7DJ7NMV5taqaX3 3XI/OLlxGsbPAvw2Wa68yVSy7uRM86saTB7C+GEL3xiT2+7hqpt/jFbcybJoJSnoZD0J fM/vpGYB48cwrUf+/qOJpHgaNegc7G3dGps9pg9cLADtu+aM6rhatoyNbrBot9ZRsj/X KLXg== X-Gm-Message-State: AOUpUlFN4D15ceU2c9ZNZ0H+QK7jhSW6UmxZRP95GsaYJEvFAGxDvGbQ Qzkt7ejEr5XgiMHCFCaVnzuhARhQR+/yFoTgpEk9CoyLMgzfHNaqu/1pfpyAE4CvyzE7RKlf0vg 5ar8Z92HaH9MTrWGIYdsdePGMbvWf6W1dv+rjPVq4OcNllbmvrj9rnKUgPof989wP3Q== X-Received: by 2002:a50:ab13:: with SMTP id s19-v6mr3592038edc.133.1531416448303; Thu, 12 Jul 2018 10:27:28 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfN0mIAw2AfJbzkKfyFGFO0QMoSG0gQtQml3f17SLrZkdMWul4nPK2mHWEjWCVf5hU9ZUMe X-Received: by 2002:a50:ab13:: with SMTP id s19-v6mr3592007edc.133.1531416447630; Thu, 12 Jul 2018 10:27:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531416447; cv=none; d=google.com; s=arc-20160816; b=brggH228IGudabR7vRa6os+FuwXofXc/VV0RUIeFN2ZEWUWvfjsEv04Bn6jk83j67m TwWzt+fm2UxsZnlu3uD17Z/q/xe7wRh9a+hL5s1HamVSoXeKgNVrV9eWk00h2FZGnm4m U4TnGQ+klRdlZT9+16nZ/WMCLRXDBC7CXiitrEYgDoOBk8SqAAXN4q2+c7gdH7Pl1U5J Ed6f92vc01uDzgnfquCUZrvuJzADkx7SgsMJLOvCoOHbT5h0JjjZaBtE/UTCyZt1cYBG zwOu+fJs8EDKTB23zUyfdtnPu6rjWCAtJ2UVQVTNa+NtW8lmK5/cYCKbhqaAIXUa9PL+ 0xMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=MB0JcxuTLfjEgf80Dz+nMnYicOFdIkPWH7p5+rE/WoA=; b=FrpoWSkz3k34xNmDDsMeVuKXgq3RO9Jw6Rt8Y0G7QoYtGsz9tmV6Elylfd2NwycB71 6g2zcnHBx6uBIpmZoOym9wwSnwyJpi6xhqnTZ2LV06bCnY2+WPEkSNo9fa+jtjJrvOZ6 70ItakpIb5zPH+Q/+1ld8zTBxrZ+J2mEPmVjUfezuMnvuc+nQrABUlLDJfkROCQxYKsN alOIg8X3N5Apkhknbl9QpQCsHT0oB92p9pNIxkAFi7ttWsOGi1cvMsmotuhDvFBIOlHA cUfRSuRwzmFFKlvw5+wXN7D7bqFcMUQaz/R2ppj+BBlVt/gbNLny97i2jrP63NXxSPdM c1bg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cmpxchg.org header.s=x header.b=x2YUk0uI; spf=pass (google.com: domain of hannes@cmpxchg.org designates 85.214.110.215 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cmpxchg.org Received: from gum.cmpxchg.org (gum.cmpxchg.org. [85.214.110.215]) by mx.google.com with ESMTPS id l8-v6si703621edb.188.2018.07.12.10.27.27 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 12 Jul 2018 10:27:27 -0700 (PDT) Received-SPF: pass (google.com: domain of hannes@cmpxchg.org designates 85.214.110.215 as permitted sender) client-ip=85.214.110.215; Authentication-Results: mx.google.com; dkim=pass header.i=@cmpxchg.org header.s=x header.b=x2YUk0uI; spf=pass (google.com: domain of hannes@cmpxchg.org designates 85.214.110.215 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cmpxchg.org 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> 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: X-Virus-Scanned: ClamAV using ClamSMTP 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;