From patchwork Wed Aug 1 15:13:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Weiner X-Patchwork-Id: 10552425 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DA58C13B8 for ; Wed, 1 Aug 2018 15:10:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C97312B859 for ; Wed, 1 Aug 2018 15:10:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C6C852B84D; Wed, 1 Aug 2018 15:10:38 +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 5BFC82B859 for ; Wed, 1 Aug 2018 15:10:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 408216B0007; Wed, 1 Aug 2018 11:10:37 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 3E3BB6B0008; Wed, 1 Aug 2018 11:10:37 -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 2CEC16B000A; Wed, 1 Aug 2018 11:10:37 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qk0-f200.google.com (mail-qk0-f200.google.com [209.85.220.200]) by kanga.kvack.org (Postfix) with ESMTP id F267C6B0007 for ; Wed, 1 Aug 2018 11:10:36 -0400 (EDT) Received: by mail-qk0-f200.google.com with SMTP id 17-v6so17207278qkz.15 for ; Wed, 01 Aug 2018 08:10:36 -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:reply-to; bh=dPzbJJIeJgfn8++cxkOJb5Dz/B61/Buo1muVR4A4+7E=; b=KTNZmEB3XjFmlC0rOQNFMUZ0frwZxI9P16hgA838v3n7Cj/5fIiCk70KzoaWNaU3+a BdNd9L4wnfC03QVlznZfRJvf+14UEOlS+aJvED/rVgBDrN3RbR0lrLBoYRf5mItbpK0Q PWQn2IbcGHOK9FjzWR5Sg8RyyfnMSlTTSBNDl/vZ5rBNfU8qdE+iksy26jaYtKKNLbDk +e6/Bt6DQjt9fHtaA+lH6/1X1jSF0zqPIsAxRxbbH4btG0wyBWSAlgDFDougWHCoYdNn W55FVdKz0aWfWSPzJqzKxQXQvZmBz8XXmOh2T4HCI/QY6+zvnqOIoBq1DLcyh/zsxoZI k8TA== X-Gm-Message-State: AOUpUlFzXhAjo9RLYM6bfOXBkJwSfyVAUKpR7RiursvsuxtcuQw9INc9 v0OBGSQat2N3qhcRRpOOi0UAMuECThsX9Zi2imWk1ou2JSbf6ZsWGojeAbbvjg/9D10XCyugVHO 5/2LDgm5wvh4liCRclhP1bzT23DZ1OmpmN3Basjx1ydlV1I4wd4HNwWcAaNz1UJgkQOiaHz4hOL zalVe/IItlNciSQyXgXZd3plPvGlwVtZof3JK3Orqv9e3SAHHftUV04cbHeJziRF6r/6m8UWbdR 6AvplFq8eF4vUoee+pD6auRh/XH9p7mQjLjBd2Kn3uYN+cwnZScZ/9Rp2ZlHU2oqZfcKsffX17R KMGYyWHIOzy5Hr5JQefBed0kM8mpYXOUBvkkQSVl3jcz3+deFa22SluStL53sIw6uMJLFGbDaMn U X-Received: by 2002:a0c:80a8:: with SMTP id 37-v6mr23439958qvb.13.1533136236732; Wed, 01 Aug 2018 08:10:36 -0700 (PDT) X-Received: by 2002:a0c:80a8:: with SMTP id 37-v6mr23439560qvb.13.1533136231876; Wed, 01 Aug 2018 08:10:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533136231; cv=none; d=google.com; s=arc-20160816; b=TNsK55yyw47LGBhqg1H9m/iGSX/9sb3Qr2ybx5/B4YngtHNiAXfLfB12X960BvNvq1 il66u5j45wBi4s+o6m9E4wAuL9eFxby42DG0KTqOe5DUXQcF0oDkHAlOalTgTftKGylv RX2wg4bed9v9oMJ/4jSddDLJ24SXWTWyApYQhqlugi/KhcbYab1oTU25ApRds4xMiOco al/EFOEgO43/OJv51bcksenyWitelAiqxfNohj0kScDijrfj1aeCY3GJAbZjw0Wiro3w 8ghYhWd3CAbiIbZUZeWVLbwSpYQFTayDUzsD1vDuONqOrQQK7fR4X7WWrPtO3MLAIOpT nLFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=reply-to:references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=dPzbJJIeJgfn8++cxkOJb5Dz/B61/Buo1muVR4A4+7E=; b=hm16/TcD6ACrRHxxtvAfAI6AVvdxDldl7Uk4sdutBbJONB3pyv6F3nNoSFbzbuL3l6 0uGCndq9HJ0A6fvJnRPUc8u+J+Ad/J69iRAl1j4kXXCwqgF8iJaRsJz4FdIUqkhUd0po LLoTCHWM1bC1k7fyv3Q7o2VxlqsH2Wvjse7GUTiijgaW+Ljf06ZyI4nVIsU9pZt1JkiH zPdIve8vsdakLuMtYb8V09gVpVmFA0XU1uxCsNVN4GNMWTe5jpwEVRblYSr6OjItNWVy ZG1rsp39V35A9SrL0RCC61+mXr7QU+isnwUc4+dnB/Cca60zfBLQs5fni3kfatXS9arD kexw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cmpxchg-org.20150623.gappssmtp.com header.s=20150623 header.b=IrJ1qNO4; spf=pass (google.com: domain of hannes@cmpxchg.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cmpxchg.org Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id k67-v6sor8329292qkd.14.2018.08.01.08.10.29 for (Google Transport Security); Wed, 01 Aug 2018 08:10:29 -0700 (PDT) Received-SPF: pass (google.com: domain of hannes@cmpxchg.org designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@cmpxchg-org.20150623.gappssmtp.com header.s=20150623 header.b=IrJ1qNO4; spf=pass (google.com: domain of hannes@cmpxchg.org designates 209.85.220.65 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; c=relaxed/relaxed; d=cmpxchg-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references:reply-to; bh=dPzbJJIeJgfn8++cxkOJb5Dz/B61/Buo1muVR4A4+7E=; b=IrJ1qNO4yNpmHkHaafMFQO9fQiwxsULbOEA/dVpnfvn02fvwHPxf/c8N+CI6BxdG+X WTSmP7csbynmCfcAfTnT/eqWmktk+z8KvgEdwE+bwP3naKwVGVU5uiDdYFGstRsBdk2v +H8yKcfWiB8fNKUArPjPCJ0hfPhOq+5+vL7ERxX68srg4EMia52/Rr7QiqoKyvGC05il C8BHLt3B81kWsW3Vq/+o0zNuwWOG44TZqaztMfYNGbStvl/Y5nvbG+TQiSpFUL3CalPU oBWjAqfG0dT+9UQuEwA5hKaRRLX0peSLpCPOoNKyltWnsP85gkigRGJHUAIzOpT5QQ6a fKkg== X-Google-Smtp-Source: AAOMgpccM2SJyK3c/vfwxEYy1pzjOpBvC3aDlAr2bRkd7wwe5GvMly1gipGb6EY2btC0FoVlPAjouQ== X-Received: by 2002:a37:210a:: with SMTP id h10-v6mr24064664qkh.263.1533136229311; Wed, 01 Aug 2018 08:10:29 -0700 (PDT) Received: from localhost (216.49.36.201.res-cmts.bus.ptd.net. [216.49.36.201]) by smtp.gmail.com with ESMTPSA id c138-v6sm11373296qkg.79.2018.08.01.08.10.27 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 01 Aug 2018 08:10:28 -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 , Mike Galbraith , Shakeel Butt , Peter Enderborg , 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: Wed, 1 Aug 2018 11:13:00 -0400 Message-Id: <20180801151308.32234-2-hannes@cmpxchg.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180801151308.32234-1-hannes@cmpxchg.org> References: <20180801151308.32234-1-hannes@cmpxchg.org> Reply-To: "[PATCH 0/9]"@kvack.org, "psi:pressure"@kvack.org, stall@kvack.org, information@kvack.org, for@kvack.org, CPU@kvack.org, memory@kvack.org, and@kvack.org, IO@kvack.org, v3@kvack.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 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;