From: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
To: jweiner@redhat.com
Cc: khlebnikov@parallels.com, penberg@kernel.org, linux-mm@kvack.org,
akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
fengguang.wu@intel.com, kamezawa.hiroyu@jp.fujitsu.com,
hannes@cmpxchg.org, riel@redhat.com, mel@csn.ul.ie,
minchan.kim@gmail.com, gene.heskett@gmail.com
Subject: Re: [rfc 1/3] mm: vmscan: never swap under low memory pressure
Date: Mon, 07 Nov 2011 19:16:04 -0500 [thread overview]
Message-ID: <4EB874C4.4010706@jp.fujitsu.com> (raw)
In-Reply-To: <20111103155127.GM19965@redhat.com>
Hi,
Sorry for the delay. I had tripped San Jose in last week.
> On Wed, Nov 02, 2011 at 10:54:23AM -0700, KOSAKI Motohiro wrote:
>>> ---
>>> mm/vmscan.c | 2 ++
>>> 1 files changed, 2 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/mm/vmscan.c b/mm/vmscan.c
>>> index a90c603..39d3da3 100644
>>> --- a/mm/vmscan.c
>>> +++ b/mm/vmscan.c
>>> @@ -831,6 +831,8 @@ static unsigned long shrink_page_list(struct list_head *page_list,
>>> * Try to allocate it some swap space here.l
>>> */
>>> if (PageAnon(page) && !PageSwapCache(page)) {
>>> + if (priority >= DEF_PRIORITY - 2)
>>> + goto keep_locked;
>>> if (!(sc->gfp_mask & __GFP_IO))
>>> goto keep_locked;for
>>> if (!add_to_swap(page))
>>
>> Hehe, i tried very similar way very long time ago. Unfortunately, it doesn't work.
>> "DEF_PRIORITY - 2" is really poor indicator for reclaim pressure. example, if the
>> machine have 1TB memory, DEF_PRIORITY-2 mean 1TB>>10 = 1GB. It't too big.
>
> Do you remember what kind of tests you ran that demonstrated
> misbehaviour?
>
> We can not reclaim anonymous pages without swapping, so the priority
> cutoff applies only to inactive file pages. If you had 1TB of
> inactive file pages, the scanner would have to go through
>
> ((1 << (40 - 12)) >> 12) +
> ((1 << (40 - 12)) >> 11) +
> ((1 << (40 - 12)) >> 10) = 1792MB
>
> without reclaiming SWAP_CLUSTER_MAX before it considers swapping.
> That's a lot of scanning but how likely is it that you have a TB of
> unreclaimable inactive cache pages?
I meant, the affect of this protection strongly depend on system memory.
- system memory is plenty.
the protection virtually affect to disable swap-out completely.
- system memory is not plenty.
the protection slightly makes a bonus to avoid swap out.
If people buy new machine and move-in their legacy workload into it, they
might surprise a lot of behavior change. I'm worry about it.
That's why I dislike DEF_PRIORITY based heuristic.
> Put into proportion, with a priority threshold of 10 a reclaimer will
> look at 0.17% ((n >> 12) + (n >> 11) + (n >> 10) (excluding the list
> balance bias) of inactive file pages without reclaiming
> SWAP_CLUSTER_MAX before it considers swapping.
Moreover, I think we need to make more precious analysis why unnecessary swapout
was happen. Which factor is dominant and when occur.
> Currently, the list balance biasing with each newly-added file page
> has much higher resistance to scan anonymous pages initially. But
> once it shifted toward anon pages, all reclaimers will start swapping,
> unlike the priority threshold that each reclaimer has to reach
> individually. Could this have been what was causing problems for you?
Um. Currently number of fulusher threads are controlled by kernel. But,
number of swap-out threads aren't limited at all. So, our swapout often
works too aggressively. I think we need fix it.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2011-11-08 0:29 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-08 11:06 [PATCH 1/2] vmscan: promote shared file mapped pages Konstantin Khlebnikov
2011-08-08 11:07 ` [PATCH 2/2] vmscan: activate executable pages after first usage Konstantin Khlebnikov
2011-08-08 23:58 ` KAMEZAWA Hiroyuki
2011-08-09 0:02 ` Minchan Kim
2011-08-09 0:04 ` KAMEZAWA Hiroyuki
2011-08-09 0:26 ` Minchan Kim
2011-08-09 1:23 ` Shaohua Li
2011-08-08 11:37 ` [PATCH 1/2] vmscan: promote shared file mapped pages Pekka Enberg
2011-08-08 12:18 ` Konstantin Khlebnikov
2011-08-08 12:40 ` Pekka Enberg
2011-08-08 12:51 ` Konstantin Khlebnikov
2011-08-18 9:09 ` Johannes Weiner
2011-11-02 16:30 ` Johannes Weiner
2011-11-02 16:31 ` [rfc 1/3] mm: vmscan: never swap under low memory pressure Johannes Weiner
2011-11-02 17:54 ` KOSAKI Motohiro
2011-11-03 15:51 ` Johannes Weiner
2011-11-08 0:16 ` KOSAKI Motohiro [this message]
2011-11-07 2:29 ` KAMEZAWA Hiroyuki
2011-11-10 15:29 ` Johannes Weiner
2011-11-02 16:32 ` [rfc 2/3] mm: vmscan: treat inactive cycling as neutral Johannes Weiner
2011-11-02 18:04 ` KOSAKI Motohiro
2011-11-03 12:49 ` Johannes Weiner
2011-11-07 2:34 ` KAMEZAWA Hiroyuki
2011-11-10 16:06 ` Johannes Weiner
2011-11-11 0:05 ` KAMEZAWA Hiroyuki
2011-11-02 16:32 ` [rfc 3/3] mm: vmscan: revert file list boost on lru addition Johannes Weiner
2011-11-07 2:45 ` KAMEZAWA Hiroyuki
2011-11-10 16:12 ` Johannes Weiner
2011-11-02 16:35 ` [PATCH 1/2] vmscan: promote shared file mapped pages Johannes Weiner
2011-08-08 23:36 ` Minchan Kim
2011-08-08 23:51 ` KAMEZAWA Hiroyuki
2011-10-31 20:12 ` Andrew Morton
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=4EB874C4.4010706@jp.fujitsu.com \
--to=kosaki.motohiro@jp.fujitsu.com \
--cc=akpm@linux-foundation.org \
--cc=fengguang.wu@intel.com \
--cc=gene.heskett@gmail.com \
--cc=hannes@cmpxchg.org \
--cc=jweiner@redhat.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=khlebnikov@parallels.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mel@csn.ul.ie \
--cc=minchan.kim@gmail.com \
--cc=penberg@kernel.org \
--cc=riel@redhat.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