From: "Ruslan Ruslichenko -X (rruslich - GLOBALLOGIC INC at Cisco)" <rruslich@cisco.com>
To: Johannes Weiner <hannes@cmpxchg.org>,
Taras Kondratiuk <takondra@cisco.com>
Cc: Michal Hocko <mhocko@kernel.org>,
linux-mm@kvack.org, xe-linux-external@cisco.com,
linux-kernel@vger.kernel.org
Subject: Re: Detecting page cache trashing state
Date: Thu, 28 Sep 2017 18:49:07 +0300 [thread overview]
Message-ID: <acbf4417-4ded-fa03-7b8d-34dc0803027c@cisco.com> (raw)
In-Reply-To: <20170918163434.GA11236@cmpxchg.org>
[-- Attachment #1: Type: text/plain, Size: 3085 bytes --]
Hi Johannes,
Hopefully I was able to rebase the patch on top v4.9.26 (latest
supported version by us right now)
and test a bit.
The overall idea definitely looks promising, although I have one
question on usage.
Will it be able to account the time which processes spend on handling
major page faults
(including fs and iowait time) of refaulting page?
As we have one big application which code space occupies big amount of
place in page cache,
when the system under heavy memory usage will reclaim some of it, the
application will
start constantly thrashing. Since it code is placed on squashfs it
spends whole CPU time
decompressing the pages and seem memdelay counters are not detecting
this situation.
Here are some counters to indicate this:
19:02:44 CPU %user %nice %system %iowait %steal %idle
19:02:45 all 0.00 0.00 100.00 0.00 0.00 0.00
19:02:44 pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s
pgscand/s pgsteal/s %vmeff
19:02:45 15284.00 0.00 428.00 352.00 19990.00 0.00
0.00 15802.00 0.00
And as nobody actively allocating memory anymore looks like memdelay
counters are not
actively incremented:
[:~]$ cat /proc/memdelay
268035776
6.13 5.43 3.58
1.90 1.89 1.26
Just in case, I have attached the v4.9.26 rebased patched.
Also attached the patch with our current solution. In current
implementation it will mostly
fit to squashfs only thrashing situation as in general case iowait time
would be major part of
page fault handling thus it need to be accounted too.
Thanks,
Ruslan
On 09/18/2017 07:34 PM, Johannes Weiner wrote:
> Hi Taras,
>
> On Fri, Sep 15, 2017 at 10:28:30AM -0700, Taras Kondratiuk wrote:
>> Quoting Michal Hocko (2017-09-15 07:36:19)
>>> On Thu 14-09-17 17:16:27, Taras Kondratiuk wrote:
>>>> Has somebody faced similar issue? How are you solving it?
>>> Yes this is a pain point for a _long_ time. And we still do not have a
>>> good answer upstream. Johannes has been playing in this area [1].
>>> The main problem is that our OOM detection logic is based on the ability
>>> to reclaim memory to allocate new memory. And that is pretty much true
>>> for the pagecache when you are trashing. So we do not know that
>>> basically whole time is spent refaulting the memory back and forth.
>>> We do have some refault stats for the page cache but that is not
>>> integrated to the oom detection logic because this is really a
>>> non-trivial problem to solve without triggering early oom killer
>>> invocations.
>>>
>>> [1] http://lkml.kernel.org/r/20170727153010.23347-1-hannes@cmpxchg.org
>> Thanks Michal. memdelay looks promising. We will check it.
> Great, I'm obviously interested in more users of it :) Please find
> attached the latest version of the patch series based on v4.13.
>
> It needs a bit more refactoring in the scheduler bits before
> resubmission, but it already contains a couple of fixes and
> improvements since the first version I sent out.
>
> Let me know if you need help rebasing to a different kernel version.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0002-mm-sched-memdelay-memory-health-interface-for-system.patch --]
[-- Type: text/x-patch; name="0002-mm-sched-memdelay-memory-health-interface-for-system.patch", Size: 0 bytes --]
next prev parent reply other threads:[~2017-09-28 15:49 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-15 0:16 Detecting page cache trashing state Taras Kondratiuk
2017-09-15 11:55 ` Zdenek Kabelac
2017-09-15 14:22 ` Daniel Walker
2017-09-15 16:38 ` Taras Kondratiuk
2017-09-15 17:31 ` Daniel Walker
2017-09-15 14:36 ` Michal Hocko
2017-09-15 17:28 ` Taras Kondratiuk
2017-09-18 16:34 ` Johannes Weiner
2017-09-19 10:55 ` [PATCH 1/3] sched/loadavg: consolidate LOAD_INT, LOAD_FRAC macros kbuild test robot
2017-09-19 11:02 ` kbuild test robot
2017-09-28 15:49 ` Ruslan Ruslichenko -X (rruslich - GLOBALLOGIC INC at Cisco) [this message]
2017-10-25 16:53 ` Detecting page cache trashing state Daniel Walker
2017-10-25 17:54 ` Johannes Weiner
2017-10-27 20:19 ` Ruslan Ruslichenko -X (rruslich - GLOBALLOGIC INC at Cisco)
2017-11-20 19:40 ` Ruslan Ruslichenko -X (rruslich - GLOBALLOGIC INC at Cisco)
2017-11-27 2:18 ` Minchan Kim
2017-10-26 3:53 ` vinayak menon
2017-10-27 20:29 ` Ruslan Ruslichenko -X (rruslich - GLOBALLOGIC INC at Cisco)
2017-09-15 21:20 ` vcaputo
2017-09-15 23:40 ` Taras Kondratiuk
2017-09-18 5:55 ` Michal Hocko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=acbf4417-4ded-fa03-7b8d-34dc0803027c@cisco.com \
--to=rruslich@cisco.com \
--cc=hannes@cmpxchg.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=takondra@cisco.com \
--cc=xe-linux-external@cisco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).