Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp7349475imm; Tue, 28 Aug 2018 10:24:54 -0700 (PDT) X-Google-Smtp-Source: ANB0Vdb6jGUlHDxdlKSv5DWo5WdFl+3n+ODvZ0BFemAB9xpUaItK7BcKc4cq6HrtGBkXShfg4WmO X-Received: by 2002:a17:902:722:: with SMTP id 31-v6mr2405375pli.207.1535477094276; Tue, 28 Aug 2018 10:24:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1535477094; cv=none; d=google.com; s=arc-20160816; b=Hxufty3Z8C5yQKBa3OUyXpujBkbdCJUGdq2C+tzExe436XkGZq0J482FgnxFLfT7oU DUYNNLg5wZifc48yi4tLleTZ587EGbwZC2HS33ZWHr7UAoqtCLLW+uoN/KavTmiDgHMp nV7Mh8VgXdeg9Jb5ASh1nCE6rb766C4kXnkSmESwdih1eBOH0vhgwCDUlnG4LepL1xxb 3wCZwtgo0LHwmf7R7w8plEC/E/Li3fDbJp/INde4zGARFfeLbNC1wraiAdLAUWO7jmvs xDK+3g7hsUDGw+kCYRIPdrSY9YEQmG9lqe9jMbIM5Y6iqzcb5D6/I+6RebPSMTuHODPd Tjyw== 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=6LP4jYlbkEnBcnLxdEdJzxq3VgpVfWiBPMH3IQ/af2M=; b=PlvKB/i2YH7bXZmeniU1m30SLItEz3whQrkvMicH/9flGCvY3qbtSg0nyRNsURsKsS 2v630fVJplk9SZF9vBkgQF4u1Pst9Mhg844qYTCDA3MmQHCdwhvrtPBIG2GY/Zk/DUjy 4rgZ3PLxrvZvWQE6+m9t7R93nsVTMfywD74TUVZSkl08y5o/UxXCwkqOXt1EnnpRXAW8 8eNOjNVmbQ/SpmCrazM3aqXGfAvR5noAavEkSJktIt76BgTEJtUSNmm21AIBQP0ADP6b os64qdosUGRCwrNuvNyQ4xvt7m/1I51dIW4M3/MFChoBqQW8+S2W+3qw2y7M1wtrfRNf F78Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cmpxchg-org.20150623.gappssmtp.com header.s=20150623 header.b=1VST8BwL; 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 g92-v6si1566434plg.179.2018.08.28.10.24.39; Tue, 28 Aug 2018 10:24:54 -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=pass header.i=@cmpxchg-org.20150623.gappssmtp.com header.s=20150623 header.b=1VST8BwL; 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 S1727452AbeH1VQB (ORCPT + 99 others); Tue, 28 Aug 2018 17:16:01 -0400 Received: from mail-yw1-f67.google.com ([209.85.161.67]:45528 "EHLO mail-yw1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727212AbeH1VQB (ORCPT ); Tue, 28 Aug 2018 17:16:01 -0400 Received: by mail-yw1-f67.google.com with SMTP id p206-v6so876793ywg.12 for ; Tue, 28 Aug 2018 10:23:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=6LP4jYlbkEnBcnLxdEdJzxq3VgpVfWiBPMH3IQ/af2M=; b=1VST8BwL/2+J3rqHHlYBmAySQOD3S7m02Nic1jjLJcfoHxI8+mwYve17/BJZ1m03lm kRVchpfKFipfKjExKOaozqJk24pyutKM23M0yyaUW1Y75DxmgodD8EBE4FUnPBWGkC3v QzJ7JPI6Y8ZyrfJXkJIW9+S/Ack5MkA1EWfKelcFc0/vOtym7aD4kD/Y5UIy9D3Z6LgB f4/Gu1Ksf+I26xfika+1g+imCP2BqrH3XjSZPNh+5FfHwOn4qIHdGk2yH5Tl6qR0sYjn AcKbmMfJUfgH1sCh6rU1rfM/lFq1Xxgvb/enMbtVwswr2ta+1n4NTADp06MNEhidpYtg WNZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=6LP4jYlbkEnBcnLxdEdJzxq3VgpVfWiBPMH3IQ/af2M=; b=U+L+HNvQM3ghSGQyF7XSYSkBQVYbsv/ZnfjYNERn5eCyALqKWaxJXx1PJHcZwHoH7P krPrv6fJvRuJs1PzT3SXSpW4Gcgo1zbDOGKrn9S5rzD9G9MD4JYVl3xS+I7FYbmaRyIN w3H+ApsTVczMEczmsDe900PGEWfdtF43DcM7nn1cDLH8Wnaibx/W3EJD0LE1uwHURfYp EwAPkFjHQS5RGVuWC5z91AwaNpcT+DJfb+VWK4kewyk27v8Dgwem4K7NELB/mlhrvFSK TF4S/RhrkE2uk6e1tUMkNXaoNgyp9ghMBZOuaIEAg4PXtLGduk4BQLXEpBkVYZPH70VH Fl0w== X-Gm-Message-State: APzg51ABCuL8idt2nuuVyAFe/gaHB1eO8Nfb4K6aKdrNn3RmJT00U16n RV9mUvJAeFUQ9wKAbgFquwP+Eg== X-Received: by 2002:a81:3295:: with SMTP id y143-v6mr1401869ywy.418.1535477001360; Tue, 28 Aug 2018 10:23:21 -0700 (PDT) Received: from localhost ([2620:10d:c091:200::1:de86]) by smtp.gmail.com with ESMTPSA id i190-v6sm1129807ywc.60.2018.08.28.10.23.20 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 28 Aug 2018 10:23:20 -0700 (PDT) From: Johannes Weiner To: Ingo Molnar , Peter Zijlstra , Andrew Morton , Linus Torvalds Cc: Tejun Heo , Suren Baghdasaryan , Daniel Drake , Vinayak Menon , Christopher Lameter , Peter Enderborg , Shakeel Butt , Mike Galbraith , linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@fb.com Subject: [PATCH 1/9] mm: workingset: don't drop refault information prematurely Date: Tue, 28 Aug 2018 13:22:50 -0400 Message-Id: <20180828172258.3185-2-hannes@cmpxchg.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180828172258.3185-1-hannes@cmpxchg.org> References: <20180828172258.3185-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 keep just 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