Received: by 2002:a25:b794:0:0:0:0:0 with SMTP id n20csp2989338ybh; Mon, 5 Aug 2019 10:06:16 -0700 (PDT) X-Google-Smtp-Source: APXvYqxmmfHN9si2rCxiybj4VQHKy3QowL1gSuToOt0vk2u8rROwfUBiSjnYcxBEnY/DwpMeBxJ/ X-Received: by 2002:a63:c1c:: with SMTP id b28mr105278841pgl.354.1565024776104; Mon, 05 Aug 2019 10:06:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565024776; cv=none; d=google.com; s=arc-20160816; b=aBB6jfXIW5IL5TBCl1xB2tKp1Sz5iPTd4wHm9i1PG+ZIR9ttmetlE1SU4K5kycEltY PnoHmFT4nagWNPbZWRXA7lGkUADDHuOKxlhGKcey+1+6Zfdo4DXNcQzMZaklCyydfL74 opx5QuL2MZJzy3ylxiXGkok9mYfHMtlYLH6m0izVGqz58T6fKRsI5mwCgIVUUFI8puU5 y5cZmqCy1lMq2E8xad3gHEC0zEGYi7ITV7F5KsDhylfROCwf0hJoY5YK+dMKR2aPeK9j duP3YRUEcpuDKLVAKpXqivW4kR3b7aQcMR8hbO48VLuPMF1j8c1ghBLuL7FkWlt/M/14 XCHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=hfTT9Vyh4lJ/Mb9rTCTCYXmmzA+mBf4ub6OXNmSq8us=; b=Brwg19lV96o0WM7Fqko6Lz8O1dl8V5r4g5p0f+LU0gXk5u7MmumzlBKcqHxTsACH+v G8ygyAQTz1JoFbDD6JzYaMbzzOkEG9QY8LXLVniiW9en2AtdnRGwQm84Vbrl+cZzs/s5 UfWumKd9T4rRzaYY+Op38Jk878nmWRwqLoh7zgRB1vKqiusl+cEWFQuYs9J6sm9HLZCg HXA7YSM2OqzPI58d4WcRc59k6bgDhjw4Kj09VcTMfDPArTOvHxjr1+oojFaiXGT13SFM gX0ADcImxOzIe+DHWibt78tZYrFpCWIFG2RV2awMiW7EdryEfHPZht1XDqBqve52ixLT LEWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=MWgO4tm5; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f61si40649154plf.258.2019.08.05.10.06.00; Mon, 05 Aug 2019 10:06:16 -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=@joelfernandes.org header.s=google header.b=MWgO4tm5; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730121AbfHERFS (ORCPT + 99 others); Mon, 5 Aug 2019 13:05:18 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:40519 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730096AbfHERFR (ORCPT ); Mon, 5 Aug 2019 13:05:17 -0400 Received: by mail-pg1-f195.google.com with SMTP id w10so40058286pgj.7 for ; Mon, 05 Aug 2019 10:05:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hfTT9Vyh4lJ/Mb9rTCTCYXmmzA+mBf4ub6OXNmSq8us=; b=MWgO4tm5GTritoxl53gt5qNjI6dHxFHD3f2tmoGq9OJgzbnGXd/y+DqsRAV4dJJOe8 mYeyo0j3HZzU6Tao9ECna4T86NUvCDpvt4gexDupdIGfVRUQxbA+88ArezoiE9kyDdqN Lu/GqdUdfcjbf1HEszwyMIgGK8XfBF0rg6oXU= 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:mime-version:content-transfer-encoding; bh=hfTT9Vyh4lJ/Mb9rTCTCYXmmzA+mBf4ub6OXNmSq8us=; b=OAUvCK4d62F0FHGa4jHbtAIOpYvjP5I80hQ6svJNrgtz3txy6+csZRrQ4syJpaaKzy rh8P/fH/w4pWaUiBPZaqYpM5hzp1Fj9w4qBHEGmDNyilyvaK080wua0SQN3GEGxajj7f XD2JzKp03nr8wFxf75p2Xk9oywtdeuNUSAV4NNq1HMUS1/fIbCyOlYUsLI0zw2OUcpA2 njnp1nIGI6D3lLKQo/8E9IWwc4sFJHHfQ9OwmNFGNiML3ucRtEuKclilG1X9uHs5Num6 /eoheNhyexKbiL8x47YP5EBFCUNZ2Nhu90isFvuZPJaMGiDEsNVmWrYf47ZW/Tt7dDwd syHw== X-Gm-Message-State: APjAAAXVnIukeKRlaUP3I7yqd267GOGs7LCAmaC748uCWjLm8+eN/96i gUhDOp5EvU1OClhSTF8CZTabLcjk X-Received: by 2002:a62:770e:: with SMTP id s14mr71578047pfc.150.1565024716052; Mon, 05 Aug 2019 10:05:16 -0700 (PDT) Received: from joelaf.cam.corp.google.com ([2620:15c:6:12:9c46:e0da:efbf:69cc]) by smtp.gmail.com with ESMTPSA id p23sm89832934pfn.10.2019.08.05.10.05.12 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 05 Aug 2019 10:05:15 -0700 (PDT) From: "Joel Fernandes (Google)" To: linux-kernel@vger.kernel.org Cc: "Joel Fernandes (Google)" , Alexey Dobriyan , Andrew Morton , Borislav Petkov , Brendan Gregg , Catalin Marinas , Christian Hansen , dancol@google.com, fmayer@google.com, "H. Peter Anvin" , Ingo Molnar , joelaf@google.com, Jonathan Corbet , Kees Cook , kernel-team@android.com, linux-api@vger.kernel.org, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Michal Hocko , Mike Rapoport , minchan@kernel.org, namhyung@google.com, paulmck@linux.ibm.com, Robin Murphy , Roman Gushchin , Stephen Rothwell , surenb@google.com, Thomas Gleixner , tkjos@google.com, Vladimir Davydov , Vlastimil Babka , Will Deacon Subject: [PATCH v4 4/5] page_idle: Drain all LRU pagevec before idle tracking Date: Mon, 5 Aug 2019 13:04:50 -0400 Message-Id: <20190805170451.26009-4-joel@joelfernandes.org> X-Mailer: git-send-email 2.22.0.770.g0f2c4a37fd-goog In-Reply-To: <20190805170451.26009-1-joel@joelfernandes.org> References: <20190805170451.26009-1-joel@joelfernandes.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org During idle tracking, we see that sometimes faulted anon pages are in pagevec but are not drained to LRU. Idle tracking considers pages only on LRU. Drain all CPU's LRU before starting idle tracking. Signed-off-by: Joel Fernandes (Google) --- mm/page_idle.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mm/page_idle.c b/mm/page_idle.c index a5b00d63216c..2972367a599f 100644 --- a/mm/page_idle.c +++ b/mm/page_idle.c @@ -180,6 +180,8 @@ static ssize_t page_idle_bitmap_read(struct file *file, struct kobject *kobj, unsigned long pfn, end_pfn; int bit, ret; + lru_add_drain_all(); + ret = page_idle_get_frames(pos, count, NULL, &pfn, &end_pfn); if (ret == -ENXIO) return 0; /* Reads beyond max_pfn do nothing */ @@ -211,6 +213,8 @@ static ssize_t page_idle_bitmap_write(struct file *file, struct kobject *kobj, unsigned long pfn, end_pfn; int bit, ret; + lru_add_drain_all(); + ret = page_idle_get_frames(pos, count, NULL, &pfn, &end_pfn); if (ret) return ret; @@ -428,6 +432,8 @@ ssize_t page_idle_proc_generic(struct file *file, char __user *ubuff, walk.private = &priv; walk.mm = mm; + lru_add_drain_all(); + down_read(&mm->mmap_sem); /* -- 2.22.0.770.g0f2c4a37fd-goog