From: Johannes Weiner <hannes@cmpxchg.org>
To: Michal Hocko <mhocko@kernel.org>
Cc: Minchan Kim <minchan@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
LKML <linux-kernel@vger.kernel.org>,
linux-mm <linux-mm@kvack.org>,
Miguel de Dios <migueldedios@google.com>,
Wei Wang <wvw@google.com>,
Mel Gorman <mgorman@techsingularity.net>,
Nicholas Piggin <npiggin@gmail.com>
Subject: Re: [RFC PATCH] mm: drop mark_page_access from the unmap path
Date: Tue, 27 Aug 2019 12:00:26 -0400 [thread overview]
Message-ID: <20190827160026.GA27686@cmpxchg.org> (raw)
In-Reply-To: <20190826120630.GI7538@dhcp22.suse.cz>
On Mon, Aug 26, 2019 at 02:06:30PM +0200, Michal Hocko wrote:
> On Tue 13-08-19 12:51:43, Michal Hocko wrote:
> > On Mon 12-08-19 11:07:25, Johannes Weiner wrote:
> > > On Mon, Aug 12, 2019 at 10:09:47AM +0200, Michal Hocko wrote:
> [...]
> > > > > Maybe the refaults will be fine - but latency expectations around
> > > > > mapped page cache certainly are a lot higher than unmapped cache.
> > > > >
> > > > > So I'm a bit reluctant about this patch. If Minchan can be happy with
> > > > > the lock batching, I'd prefer that.
> > > >
> > > > Yes, it seems that the regular lock drop&relock helps in Minchan's case
> > > > but this is a kind of change that might have other subtle side effects.
> > > > E.g. will-it-scale has noticed a regression [1], likely because the
> > > > critical section is shorter and the overal throughput of the operation
> > > > decreases. Now, the w-i-s is an artificial benchmark so I wouldn't lose
> > > > much sleep over it normally but we have already seen real regressions
> > > > when the locking pattern has changed in the past so I would by a bit
> > > > cautious.
> > >
> > > I'm much more concerned about fundamentally changing the aging policy
> > > of mapped page cache then about the lock breaking scheme. With locking
> > > we worry about CPU effects; with aging we worry about additional IO.
> >
> > But the later is observable and debuggable little bit easier IMHO.
> > People are quite used to watch for major faults from my experience
> > as that is an easy metric to compare.
Rootcausing additional (re)faults is really difficult. We're talking
about a slight trend change in caching behavior in a sea of millions
of pages. There could be so many factors causing this, and for most
you have to patch debugging stuff into the kernel to rule them out.
A CPU regression you can figure out with perf.
> > > > As I've said, this RFC is mostly to open a discussion. I would really
> > > > like to weigh the overhead of mark_page_accessed and potential scenario
> > > > when refaults would be visible in practice. I can imagine that a short
> > > > lived statically linked applications have higher chance of being the
> > > > only user unlike libraries which are often being mapped via several
> > > > ptes. But the main problem to evaluate this is that there are many other
> > > > external factors to trigger the worst case.
> > >
> > > We can discuss the pros and cons, but ultimately we simply need to
> > > test it against real workloads to see if changing the promotion rules
> > > regresses the amount of paging we do in practice.
> >
> > Agreed. Do you see other option than to try it out and revert if we see
> > regressions? We would get a workload description which would be helpful
> > for future regression testing when touching this area. We can start
> > slower and keep it in linux-next for a release cycle to catch any
> > fallouts early.
> >
> > Thoughts?
>
> ping...
Personally, I'm not convinced by this patch. I think it's a pretty
drastic change in aging heuristics just to address a CPU overhead
problem that has simpler, easier to verify, alternative solutions.
It WOULD be great to clarify and improve the aging model for mapped
cache, to make it a bit easier to reason about. But this patch does
not really get there either. Instead of taking a serious look at
mapped cache lifetime and usage scenarios, the changelog is more in
"let's see what breaks if we take out this screw here" territory.
So I'm afraid I don't think the patch & changelog in its current shape
should go upstream.
next prev parent reply other threads:[~2019-08-27 16:00 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-29 7:10 [PATCH] mm: release the spinlock on zap_pte_range Minchan Kim
2019-07-29 7:45 ` Michal Hocko
2019-07-29 8:20 ` Minchan Kim
2019-07-29 8:35 ` Michal Hocko
2019-07-30 12:11 ` Minchan Kim
2019-07-30 12:32 ` Michal Hocko
2019-07-30 12:39 ` Minchan Kim
2019-07-30 12:57 ` Michal Hocko
2019-07-31 5:44 ` Minchan Kim
2019-07-31 7:21 ` Michal Hocko
2019-08-06 10:55 ` Minchan Kim
2019-08-09 12:43 ` [RFC PATCH] mm: drop mark_page_access from the unmap path Michal Hocko
2019-08-09 17:57 ` Mel Gorman
2019-08-09 18:34 ` Johannes Weiner
2019-08-12 8:09 ` Michal Hocko
2019-08-12 15:07 ` Johannes Weiner
2019-08-13 10:51 ` Michal Hocko
2019-08-26 12:06 ` Michal Hocko
2019-08-27 16:00 ` Johannes Weiner [this message]
2019-08-27 18:41 ` Michal Hocko
2019-07-30 19:42 ` [PATCH] mm: release the spinlock on zap_pte_range Andrew Morton
2019-07-31 6:14 ` Minchan Kim
2019-08-06 7:05 ` [mm] 755d6edc1a: will-it-scale.per_process_ops -4.1% regression kernel test robot
2019-08-06 7:05 ` kernel test robot
2019-08-06 8:04 ` Michal Hocko
2019-08-06 8:04 ` Michal Hocko
2019-08-06 11:00 ` Minchan Kim
2019-08-06 11:00 ` Minchan Kim
2019-08-06 11:11 ` Michal Hocko
2019-08-06 11:11 ` 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=20190827160026.GA27686@cmpxchg.org \
--to=hannes@cmpxchg.org \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=mhocko@kernel.org \
--cc=migueldedios@google.com \
--cc=minchan@kernel.org \
--cc=npiggin@gmail.com \
--cc=wvw@google.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.