Thread (29 messages) flat view 29 messages, 4 authors, 2019-08-07

Re: [PATCH v4 3/5] [RFC] arm64: Add support for idle bit in swap PTE

From: Minchan Kim <minchan@kernel.org>
Date: 2019-08-06 14:48:07
Also in: linux-api, linux-fsdevel, linux-mm, lkml

On Tue, Aug 06, 2019 at 01:57:03PM +0200, Michal Hocko wrote:
On Tue 06-08-19 07:14:46, Joel Fernandes wrote:
quoted
On Tue, Aug 06, 2019 at 12:47:55PM +0200, Michal Hocko wrote:
quoted
On Tue 06-08-19 06:36:27, Joel Fernandes wrote:
quoted
On Tue, Aug 06, 2019 at 10:42:03AM +0200, Michal Hocko wrote:
quoted
On Mon 05-08-19 13:04:49, Joel Fernandes (Google) wrote:
quoted
This bit will be used by idle page tracking code to correctly identify
if a page that was swapped out was idle before it got swapped out.
Without this PTE bit, we lose information about if a page is idle or not
since the page frame gets unmapped.
And why do we need that? Why cannot we simply assume all swapped out
pages to be idle? They were certainly idle enough to be reclaimed,
right? Or what does idle actualy mean here?
Yes, but other than swapping, in Android a page can be forced to be swapped
out as well using the new hints that Minchan is adding?
Yes and that is effectivelly making them idle, no?
That depends on how you think of it.
I would much prefer to have it documented so that I do not have to guess ;)
quoted
If you are thinking of a monitoring
process like a heap profiler, then from the heap profiler's (that only cares
about the process it is monitoring) perspective it will look extremely odd if
pages that are recently accessed by the process appear to be idle which would
falsely look like those processes are leaking memory. The reality being,
Android forced those pages into swap because of other reasons. I would like
for the swapping mechanism, whether forced swapping or memory reclaim, not to
interfere with the idle detection.
Hmm, but how are you going to handle situation when the page is unmapped
and refaulted again (e.g. a normal reclaim of a pagecache)? You are
losing that information same was as in the swapout case, no? Or am I
missing something?
If page is unmapped, it's not a idle memory any longer because it's
free memory. We could detect the pte is not present.

If page is refaulted, it's not a idle memory any longer because it's
accessed again. We could detect it because the newly allocated page
doesn't have a PG_idle page flag.

Both case, idle page tracking couldn't report them as IDLE so it's okay.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help