Received: by 2002:a25:b794:0:0:0:0:0 with SMTP id n20csp3809691ybh; Tue, 6 Aug 2019 01:44:54 -0700 (PDT) X-Google-Smtp-Source: APXvYqwUj47DlTojCfUBkLrFT/tKjnqhGT+F+utQ7VCyZ93OkY6y1LGILhAJoHUkcP2cIL7qynAi X-Received: by 2002:a65:52c5:: with SMTP id z5mr2058876pgp.118.1565081094329; Tue, 06 Aug 2019 01:44:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565081094; cv=none; d=google.com; s=arc-20160816; b=p10WLeNIiSoq8L8pkOI+1+84+TuUTAKf2n9NNqRQX2jUlR3kI0ZyWtaCExGROx0xuC bPzZG0ej3M7PBBOCA6WpCe7q99nwrNkxl0Gvg1+/5IN35FHDZbyp6A5WrzP4JTXKy2zD yPTg9v6SH/KdO2CRpUz+4JjvG0+Vx1PZV90V+iCK9h5csNXhOWmM0i88lGMaGbQUQ5gW uxJLFeW8gHXOD4qY41ji7nrfHIDt0l3OonPTxtfXNRI40Bh8oz90bxK/D+uZ7zXNoYtf Ks4SmJgpUnFceGiNOBB1zrwRddwC35NausxUPTTEfdiL0xf9K+znT4NFltblzSluNlz1 F3Xg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=0inXmfqIH0ti+18qEKndWcJf66x8UBbUJ5ojeLuaRww=; b=PuHdCdBqBtE2qMtAgf7mYWpxjbam6TsiBrCMQRIRdnrzs9QXQN5k+r5YlmbNZeo5gd 3LLgRY+88kvL1cRA0/6ca1MZjdng7krF/Et+RvlEAKg+P5WOwQS1fNC30pXtlvOQuXSS oT4MA+ojWjSl/QR9Z8fADU2Fk1gepTOAyY7nxxDYxrtLmpDEOf3tDb6Z0XGjlX0QCWHz ErJ7IzIIj6y9i2b85zRTUBqNQIQQJWnzUYG+86aq53i1iwNsqH7kj+Y/bd1h2Lt9BAVq 4eU0TJZjpz7QQaHTHmt+5PwHszsvVh7UY7UAc293YY3c8iQU5UcxPZY7atN1B5t8ixQx d/zg== ARC-Authentication-Results: i=1; mx.google.com; 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=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q2si41373462plh.56.2019.08.06.01.44.38; Tue, 06 Aug 2019 01:44: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; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732206AbfHFIoG (ORCPT + 99 others); Tue, 6 Aug 2019 04:44:06 -0400 Received: from mx2.suse.de ([195.135.220.15]:60346 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726713AbfHFIoG (ORCPT ); Tue, 6 Aug 2019 04:44:06 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id C4ACEAC97; Tue, 6 Aug 2019 08:44:04 +0000 (UTC) Date: Tue, 6 Aug 2019 10:43:57 +0200 From: Michal Hocko To: "Joel Fernandes (Google)" Cc: linux-kernel@vger.kernel.org, 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, 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: Re: [PATCH v4 4/5] page_idle: Drain all LRU pagevec before idle tracking Message-ID: <20190806084357.GK11812@dhcp22.suse.cz> References: <20190805170451.26009-1-joel@joelfernandes.org> <20190805170451.26009-4-joel@joelfernandes.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190805170451.26009-4-joel@joelfernandes.org> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon 05-08-19 13:04:50, Joel Fernandes (Google) wrote: > 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. Please expand on why does this matter enough to introduce a potentially expensinve draining which has to schedule a work on each CPU and wait for them to finish. > 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 -- Michal Hocko SUSE Labs