From: Mel Gorman <mgorman@suse.de>
To: "Huang, Ying" <ying.huang@intel.com>
Cc: David Hildenbrand <david@redhat.com>,
Michal Hocko <mhocko@kernel.org>,
Johannes Weiner <hannes@cmpxchg.org>,
Matthew Wilcox <willy@infradead.org>,
Andrew Morton <akpm@linux-foundation.org>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Vlastimil Babka <vbabka@suse.cz>, Zi Yan <ziy@nvidia.com>,
Peter Zijlstra <peterz@infradead.org>,
Dave Hansen <dave.hansen@linux.intel.com>,
Minchan Kim <minchan@kernel.org>, Hugh Dickins <hughd@google.com>,
Alexander Duyck <alexander.duyck@gmail.com>
Subject: Re: [RFC 0/3] mm: Discard lazily freed pages when migrating
Date: Tue, 3 Mar 2020 13:02:41 +0000 [thread overview]
Message-ID: <20200303130241.GE3772@suse.de> (raw)
In-Reply-To: <87zhcy5hoj.fsf@yhuang-dev.intel.com>
On Tue, Mar 03, 2020 at 09:51:56AM +0800, Huang, Ying wrote:
> Mel Gorman <mgorman@suse.de> writes:
> > On Mon, Mar 02, 2020 at 07:23:12PM +0800, Huang, Ying wrote:
> >> If some applications cannot tolerate the latency incurred by the memory
> >> allocation and zeroing. Then we cannot discard instead of migrate
> >> always. While in some situations, less memory pressure can help. So
> >> it's better to let the administrator and the application choose the
> >> right behavior in the specific situation?
> >>
> >
> > Is there an application you have in mind that benefits from discarding
> > MADV_FREE pages instead of migrating them?
> >
> > Allowing the administrator or application to tune this would be very
> > problematic. An application would require an update to the system call
> > to take advantage of it and then detect if the running kernel supports
> > it. An administrator would have to detect that MADV_FREE pages are being
> > prematurely discarded leading to a slowdown and that is hard to detect.
> > It could be inferred from monitoring compaction stats and checking
> > if compaction activity is correlated with higher minor faults in the
> > target application. Proving the correlation would require using the perf
> > software event PERF_COUNT_SW_PAGE_FAULTS_MIN and matching the addresses
> > to MADV_FREE regions that were freed prematurely. That is not an obvious
> > debugging step to take when an application detects latency spikes.
> >
> > Now, you could add a counter specifically for MADV_FREE pages freed for
> > reasons other than memory pressure and hope the administrator knows about
> > the counter and what it means. That type of knowledge could take a long
> > time to spread so it's really very important that there is evidence of
> > an application that suffers due to the current MADV_FREE and migration
> > behaviour.
>
> OK. I understand that this patchset isn't a universal win, so we need
> some way to justify it. I will try to find some application for that.
>
> Another thought, as proposed by David Hildenbrand, it's may be a
> universal win to discard clean MADV_FREE pages when migrating if there are
> already memory pressure on the target node. For example, if the free
> memory on the target node is lower than high watermark?
>
That is an extremely specific corner case that is not likely to occur.
NUMA balancing is not going to migrate a MADV_FREE page under these
circumstances as a write cancels MADV_FREE is read attempt will probably
fail to allocate a destination page in alloc_misplaced_dst_page so the
data gets lost instead of remaining remote. sys_movepages is a possibility
but the circumstances of an application delibertly trying to migrate to
a loaded node is low. Compaction never migrates cross-node so the state
of a remote node under pressure do not matter.
Once again, there needs to be a reasonable use case to be able to
meaningfully balance between the benefits and risks of changing the
MADV_FREE semantics.
--
Mel Gorman
SUSE Labs
next prev parent reply other threads:[~2020-03-03 13:02 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-28 3:38 [RFC 0/3] mm: Discard lazily freed pages when migrating Huang, Ying
2020-02-28 3:38 ` [RFC 1/3] mm, migrate: Check return value of try_to_unmap() Huang, Ying
2020-02-28 3:38 ` [RFC 2/3] mm: Add a new page flag PageLayzyFree() for MADV_FREE Huang, Ying
2020-02-28 6:13 ` David Hildenbrand
2020-02-28 6:47 ` Huang, Ying
2020-03-15 8:18 ` Wei Yang
2020-03-15 8:54 ` Mika Penttilä
2020-03-15 12:22 ` Wei Yang
2020-03-16 1:21 ` Huang, Ying
2020-03-16 22:38 ` Wei Yang
2020-02-28 3:38 ` [RFC 3/3] mm: Discard lazily freed pages when migrating Huang, Ying
2020-02-28 3:42 ` [RFC 0/3] " Matthew Wilcox
2020-02-28 7:25 ` Huang, Ying
2020-02-28 8:22 ` David Hildenbrand
2020-02-28 8:55 ` Huang, Ying
2020-02-28 9:49 ` Mel Gorman
2020-03-02 11:23 ` Huang, Ying
2020-03-02 15:16 ` Mel Gorman
2020-03-03 1:51 ` Huang, Ying
2020-03-03 8:09 ` Michal Hocko
2020-03-03 8:47 ` Huang, Ying
2020-03-03 8:58 ` Michal Hocko
2020-03-03 11:49 ` Huang, Ying
2020-03-04 9:58 ` Michal Hocko
2020-03-04 10:56 ` Mel Gorman
2020-03-05 1:42 ` Huang, Ying
2020-03-04 11:15 ` Huang, Ying
2020-03-04 11:26 ` Michal Hocko
2020-03-05 1:45 ` Huang, Ying
2020-03-05 10:48 ` Mel Gorman
2020-03-06 4:05 ` Huang, Ying
2020-03-09 5:26 ` Huang, Ying
2020-03-03 13:02 ` Mel Gorman [this message]
2020-03-04 0:33 ` Huang, Ying
2020-02-28 9:50 ` Michal Hocko
2020-02-28 10:15 ` Michal Hocko
2020-02-28 13:45 ` Johannes Weiner
2020-03-02 14:12 ` Huang, Ying
2020-03-02 14:23 ` David Hildenbrand
2020-03-03 0:25 ` Huang, Ying
2020-03-02 14:25 ` Michal Hocko
2020-03-03 1:30 ` Huang, Ying
2020-03-03 8:19 ` Michal Hocko
2020-03-03 11:36 ` Huang, Ying
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=20200303130241.GE3772@suse.de \
--to=mgorman@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alexander.duyck@gmail.com \
--cc=dave.hansen@linux.intel.com \
--cc=david@redhat.com \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=minchan@kernel.org \
--cc=peterz@infradead.org \
--cc=vbabka@suse.cz \
--cc=willy@infradead.org \
--cc=ying.huang@intel.com \
--cc=ziy@nvidia.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.