All of lore.kernel.org
 help / color / mirror / Atom feed
From: Minchan Kim <minchan@kernel.org>
To: Michal Hocko <mhocko@suse.cz>
Cc: Hyunhee Kim <hyunhee.kim@samsung.com>,
	'Anton Vorontsov' <anton@enomsg.org>,
	linux-mm@kvack.org, akpm@linux-foundation.org, rob@landley.net,
	kamezawa.hiroyu@jp.fujitsu.com, hannes@cmpxchg.org,
	rientjes@google.com, kirill@shutemov.name,
	'Kyungmin Park' <kyungmin.park@samsung.com>
Subject: Re: [PATCH v2] vmpressure: consider "scanned < reclaimed" case when calculating  a pressure level.
Date: Fri, 28 Jun 2013 00:35:28 +0900	[thread overview]
Message-ID: <20130627153528.GA5006@gmail.com> (raw)
In-Reply-To: <20130627093721.GC17647@dhcp22.suse.cz>

Hi Michal,

On Thu, Jun 27, 2013 at 11:37:21AM +0200, Michal Hocko wrote:
> On Thu 27-06-13 15:12:10, Hyunhee Kim wrote:
> > In vmpressure, the pressure level is calculated based on the ratio
> > of how many pages were scanned vs. reclaimed in a given time window.
> > However, there is a possibility that "scanned < reclaimed" in such a
> > case, when reclaiming ends by fatal signal in shrink_inactive_list.
> > So, with this patch, we just return "low" level when "scanned < reclaimed"
> > happens not to have userland miss reclaim activity.
> 
> Hmm, fatal signal pending on kswapd doesn't make sense to me so it has
> to be a direct reclaim path. Does it really make sense to signal LOW
> when there is probably a big memory pressure and somebody is killing the
> current allocator?

So, do you want to trigger critical instead of low?

Now, current is going to die so we can expect shortly we can get a amount
of memory, normally. but yeah, we cannot sure it happens within a bounded
time since it couldn't use reserved memory pool unlike process killed by OOM.

If we send critical but there isn't big memory pressure,
maybe critical handler would kill some process and the result is that killing
another process unnecessary. That's really thing we should avoid.

If we send low but there is a big memory pressure, at least, userland
could be notified and it has a chance to release small memory, which will
help to exit current process so that it could prevent OOM kill and killing
another process unnecessary.

If we send low but there isn't big memory pressure, totally, we will save
a process.

> 
> The THP case made sense because nr_scanned is in LRU elements units
> while nr_reclaimed is in page units which are different so nr_reclaim
> might be higher than nr_scanned (so nr_taken would be more approapriate
> for vmpressure).

In case of THP, 512 page is equal to vmpressure_win so if we change nr_scanned
with nr_taken, it could easily make vmpressure notifier level critical even if
VM encounter a recent referenced THP page from LRU tail so I'd like to ignore
THP page effect in vmpressure level calculation.

>  
> > Signed-off-by: Hyunhee Kim <hyunhee.kim@samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> > ---
> >  mm/vmpressure.c |    8 ++++++++
> >  1 file changed, 8 insertions(+)
> > 
> > diff --git a/mm/vmpressure.c b/mm/vmpressure.c
> > index 736a601..8c60cad 100644
> > --- a/mm/vmpressure.c
> > +++ b/mm/vmpressure.c
> > @@ -119,6 +119,14 @@ static enum vmpressure_levels vmpressure_calc_level(unsigned long scanned,
> >  	unsigned long pressure;
> >  
> >  	/*
> > +	 * This could happen, in such a case, when reclaiming ends by fatal
> > +	 * signal in shrink_inactive_list(). In this case, return
> > +	 * VMPRESSURE_LOW not to have userland miss reclaim activity.
> > +	 */
> > +	if (reclaimed > scanned)
> > +		return VMPRESSURE_LOW;
> > +
> > +	/*
> >  	 * We calculate the ratio (in percents) of how many pages were
> >  	 * scanned vs. reclaimed in a given time frame (window). Note that
> >  	 * time is in VM reclaimer's "ticks", i.e. number of pages
> > -- 
> > 1.7.9.5
> > 
> > 
> > --
> > 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/ .
> > Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
> 
> -- 
> Michal Hocko
> SUSE Labs

--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2013-06-27 15:36 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-17 11:30 [PATCH v3] memcg: event control at vmpressure Hyunhee Kim
2013-06-17 13:15 ` Michal Hocko
2013-06-18  6:10   ` Hyunhee Kim
2013-06-18  8:00     ` Hyunhee Kim
2013-06-18 11:01       ` Michal Hocko
2013-06-19 11:25         ` Hyunhee Kim
2013-06-19 11:59           ` Michal Hocko
2013-06-19 11:31         ` [PATCH v4] " Hyunhee Kim
2013-06-19 12:53           ` Michal Hocko
2013-06-20  2:13             ` Hyunhee Kim
2013-06-20  2:17             ` [PATCH v5] " Hyunhee Kim
2013-06-20 12:16               ` Michal Hocko
2013-06-21  0:21                 ` [PATCH v6] " Hyunhee Kim
2013-06-21  0:24                   ` Hyunhee Kim
2013-06-21  1:22                     ` Minchan Kim
2013-06-21  9:19                       ` Michal Hocko
2013-06-21 11:02                         ` Hyunhee Kim
2013-06-21 11:54                           ` Hyunhee Kim
2013-06-21 12:40                             ` [PATCH v7] " Hyunhee Kim
2013-06-21 16:27                         ` [PATCH v6] " Minchan Kim
2013-06-21 16:44                           ` Minchan Kim
2013-06-22  0:27                             ` Anton Vorontsov
2013-06-22  1:28                               ` Hyunhee Kim
2013-06-26  7:47                               ` Minchan Kim
2013-06-21 22:35                           ` Anton Vorontsov
2013-06-22  4:36                           ` Hyunhee Kim
2013-06-22  4:51                             ` Hyunhee Kim
2013-06-22  5:50                               ` [PATCH] memcg: consider "scanned < reclaimed" case when calculating Hyunhee Kim
2013-06-22  7:34                                 ` [PATCH] memcg: add interface to specify thresholds of vmpressure Hyunhee Kim
2013-06-25 20:46                                   ` Michal Hocko
2013-06-26  7:39                                   ` Minchan Kim
2013-06-26  7:50                                     ` Kyungmin Park
2013-06-26  8:03                                       ` Minchan Kim
2013-06-26  7:35                                 ` [PATCH] memcg: consider "scanned < reclaimed" case when calculating Minchan Kim
2013-06-27  6:12                                   ` [PATCH v2] vmpressure: consider "scanned < reclaimed" case when calculating a pressure level Hyunhee Kim
2013-06-27  9:37                                     ` Michal Hocko
2013-06-27 15:35                                       ` Minchan Kim [this message]
2013-06-27 16:11                                         ` Michal Hocko
2013-06-27 18:05                                           ` Anton Vorontsov
2013-06-28 12:17                                             ` Michal Hocko
2013-06-27 23:54                                           ` Minchan Kim
2013-06-28  7:43                                             ` [PATCH v3] " Hyunhee Kim
2013-06-28 12:26                                               ` Michal Hocko
2013-06-28 12:24                                             ` [PATCH v2] " Michal Hocko
2013-06-28 13:55                                               ` Minchan Kim
2013-06-28 15:17                                                 ` Michal Hocko
2013-06-27 18:33                                     ` Anton Vorontsov
2013-06-26  7:34                               ` [PATCH v6] memcg: event control at vmpressure Minchan Kim
2013-06-26  7:31                             ` Minchan Kim
2013-06-25 16:07                           ` 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=20130627153528.GA5006@gmail.com \
    --to=minchan@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=anton@enomsg.org \
    --cc=hannes@cmpxchg.org \
    --cc=hyunhee.kim@samsung.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=kirill@shutemov.name \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@suse.cz \
    --cc=rientjes@google.com \
    --cc=rob@landley.net \
    /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.