From patchwork Wed Aug 1 15:19:50 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Weiner X-Patchwork-Id: 10552457 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 3218314E2 for ; Wed, 1 Aug 2018 15:17:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 23B2B2B5AF for ; Wed, 1 Aug 2018 15:17:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 17A162B703; Wed, 1 Aug 2018 15:17:21 +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.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE 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 9A4E82B5AF for ; Wed, 1 Aug 2018 15:17:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9D2956B0276; Wed, 1 Aug 2018 11:17:17 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 934A06B0278; Wed, 1 Aug 2018 11:17:17 -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 789DF6B0279; Wed, 1 Aug 2018 11:17:17 -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 4677A6B0276 for ; Wed, 1 Aug 2018 11:17:17 -0400 (EDT) Received: by mail-qk0-f200.google.com with SMTP id v65-v6so16972030qka.23 for ; Wed, 01 Aug 2018 08:17:17 -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=dPzbJJIeJgfn8++cxkOJb5Dz/B61/Buo1muVR4A4+7E=; b=PhdPWxsj1R0gICgabrvvcnThiCUVaROwpqTNjhTWA4EFN1b6+IfkNjXKug+tCcPCd2 jXRQb7P2jZNbm9WpnEROmPZgJoAeo1Et4YBUVdkcSTzoWJNGAgNVAhZg5M3ScI0b0W+J GJxJVCRvzO3KUxViy8kU1Ye0tSk8t/ObJIuw4McANRq3d/xfnj2aIwyoLTeyZ8H7m0r7 lxGFO3gsuDKuG5YETHFkr6FV1QCJJGsoHXGJetdSSCOLatyQJEIIYbc4iAyIZG1M/H7m u+WD+qd2XPikQKz1mSxIhNXaR6Fb6gtW5UautlghufMYBxOYw+Et2sfbVwp9RgOaXAoL 9j3g== X-Gm-Message-State: AOUpUlG+174itmX4Ka0Y3oiTxNwvII6toMZE9pYp6uW8jRG1JJPk5Kna k14OlJLig5Kp+398Tn7dCmjj91EZSfI98Uv5Cts9NXzjPLWgeAm/3Kn+OywsPAj09pY21z+o7oW EwXSwEN/xYJJR1GOn/dVZqobaiWwVK6PehdY+Iz24z0i6yegY+ZtccruOF0Y0gaGjcO/akv/H37 eAVVzrAq7yjC99hS9YBCVlHSOvwr8JNIm6V2WbxCtuEYAttHCamFQcJg0ZkMoREjJtX3FGox2QG Kkh6a1NaVQ5ZV9GBO9nCk4tLP0GGD9VvwFfwfWS7vwqk37bypx2F1FuA3Q95yacUsL+oY6G7RzN HCk4YJP6/WBMsZpSxP0jTV0fWU3+/c+CQGTPZQgxpK+65SClXmFoTm6WnMjvvLsC+9GmRiBoMzv P X-Received: by 2002:a37:6e01:: with SMTP id j1-v6mr25140669qkc.70.1533136637036; Wed, 01 Aug 2018 08:17:17 -0700 (PDT) X-Received: by 2002:a37:6e01:: with SMTP id j1-v6mr25140634qkc.70.1533136636493; Wed, 01 Aug 2018 08:17:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533136636; cv=none; d=google.com; s=arc-20160816; b=fIkfNYPRS4L2lGJLIiyKpH83QjZ5Sf22rOlCfbop5CB66ezr1sa8Set+dQjRpvaDRy 87nWCI/UXhb15HLDENqYq4VAW/AH+s30WieI3tOeUmcTrF0CbAKjdr+8QrUBzLn7O6FM U8MzfQjsjoArEHDuSuyXJthOVzBD21f7Bap7pAWhFmDNLrIeIfPmdiiY5radv7kFco0U Dlk+JtL2GPFscZ+YcvenXR5Vo6JI1TkRBa97QhRdfG31eh3t1AMR3gGYaUmTLEbm/u67 DYoOx7/mWk5d/7tmp/AZFbquMlboP47Dj5EAaj12MwxBhXcvOZz82I04nNMCGy11lZDX 4iRg== 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=dPzbJJIeJgfn8++cxkOJb5Dz/B61/Buo1muVR4A4+7E=; b=W9hq+hfRFqoOftiiIoVIAK2xVSsJB+Bx8XooR53MYN6HrURyVDQ8Dc10OmWfNt0xx7 nd2DtvD5L4/PYCgUlmwskbOAs4yjNecsyOPdXOYf++CTgHs6uP8L/v9VKPX0CdzzrImM XtlNDgaXL7XHi1Y6OKHD/SRwKQRUQ54Rd4nNI53U8dIm6r66V609b7ess6Cv5Ejibael 0qLQMTi3MxZO6qw/kmehXAxlu3atgUCSDfBuR4QJLIxL8d+wtMIKK7G4T+n3HP+gCfm3 QbFqW7lMO5TxE9/WGPk/5XmmqIK6mMw0OAXECo6IdZl1ja4U9CbNYG0xUrBRSEYsYV+u X22g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cmpxchg-org.20150623.gappssmtp.com header.s=20150623 header.b=vjkKAP6u; 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 d16-v6sor8388645qtc.43.2018.08.01.08.17.16 for (Google Transport Security); Wed, 01 Aug 2018 08:17:16 -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=vjkKAP6u; 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; bh=dPzbJJIeJgfn8++cxkOJb5Dz/B61/Buo1muVR4A4+7E=; b=vjkKAP6ubSVRmeQnLIA1gqmu8OAqsEHegFTBIDM1/gU9CHgInYOeLeKoL9P1dcM5B8 F/g3ROFEMdcJg5dDR13yU3joj5UQWsjMnRDx0MouUUBe7DxHXOPd32pQJYysbbJZLLgH xlEMIfX9TjiQ+72+ycMhG1eMvquOXetDj2NhDc9pedmsJU9lRUIPuf8Q0mfCT+Z74Pjf yCDRJ+CA+TaGOqToLtodun/RLgCBPA0aO6HVisiIC05uiTi+4FORM5tjzYEcsdrHNd6T wvNUSYsmzHT8lv5HXIX1e6XMrF/B/D9vp76MjyyLkRYtFV2y5qHoKO2H9z/aPvzbK0ua 6Tqw== X-Google-Smtp-Source: AAOMgpcPejOKXggv4n4mtOX7TLOUkJf2P1Z5h5cgj8sR5QAuAUlmFjmyKcvWXIdnmZyAlGMFPVa2rw== X-Received: by 2002:ac8:28ca:: with SMTP id j10-v6mr26812646qtj.9.1533136636070; Wed, 01 Aug 2018 08:17:16 -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 127-v6sm10610783qkn.78.2018.08.01.08.17.14 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 01 Aug 2018 08:17:15 -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:19:50 -0400 Message-Id: <20180801151958.32590-2-hannes@cmpxchg.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180801151958.32590-1-hannes@cmpxchg.org> References: <20180801151958.32590-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 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;