linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Balbir Singh <balbir@linux.vnet.ibm.com>
To: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: linux-mm@kvack.org, Sudhir Kumar <skumar@linux.vnet.ibm.com>,
	YAMAMOTO Takashi <yamamoto@valinux.co.jp>,
	Bharata B Rao <bharata@in.ibm.com>,
	Paul Menage <menage@google.com>,
	lizf@cn.fujitsu.com, linux-kernel@vger.kernel.org,
	David Rientjes <rientjes@google.com>,
	Pavel Emelianov <xemul@openvz.org>,
	Dhaval Giani <dhaval@linux.vnet.ibm.com>,
	Rik van Riel <riel@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Subject: Re: [PATCH 4/4] Memory controller soft limit reclaim on contention (v3)
Date: Tue, 3 Mar 2009 16:47:13 +0530	[thread overview]
Message-ID: <20090303111713.GQ11421@balbir.in.ibm.com> (raw)
In-Reply-To: <20090303095833.D9FC.A69D9226@jp.fujitsu.com>

* KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> [2009-03-03 11:43:49]:

> > * KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> [2009-03-02 12:08:01]:
> > 
> > > Hi Balbir,
> > > 
> > > > @@ -2015,9 +2016,12 @@ static int kswapd(void *p)
> > > >  		finish_wait(&pgdat->kswapd_wait, &wait);
> > > >  
> > > >  		if (!try_to_freeze()) {
> > > > +			struct zonelist *zl = pgdat->node_zonelists;
> > > >  			/* We can speed up thawing tasks if we don't call
> > > >  			 * balance_pgdat after returning from the refrigerator
> > > >  			 */
> > > > +			if (!order)
> > > > +				mem_cgroup_soft_limit_reclaim(zl, GFP_KERNEL);
> > > >  			balance_pgdat(pgdat, order);
> > > >  		}
> > > >  	}
> > > 
> > > kswapd's roll is increasing free pages until zone->pages_high in "own node".
> > > mem_cgroup_soft_limit_reclaim() free one (or more) exceed page in any node.
> > > 
> > > Oh, well.
> > > I think it is not consistency.
> > > 
> > > if mem_cgroup_soft_limit_reclaim() is aware to target node and its pages_high,
> > > I'm glad.
> > 
> > Yes, correct the role of kswapd is to keep increasing free pages until
> > zone->pages_high and the first set of pages to consider is the memory
> > controller over their soft limits. We pass the zonelist to ensure that
> > while doing soft reclaim, we focus on the zonelist associated with the
> > node. Kamezawa had concernes over calling the soft limit reclaim from
> > __alloc_pages_internal(), did you prefer that call path? 
> 
> I read your patch again.
> So, mem_cgroup_soft_limit_reclaim() caller place seems in balance_pgdat() is better.
> 
> Please imazine most bad scenario.
> CPU0 (kswapd) take to continue shrinking.
> CPU1 take another activity and charge memcg conteniously.
> At that time, balance_pgdat() don't exit very long time. then 
> mem_cgroup_soft_limit_reclaim() is never called.
> 

Yes, true... that is why I added the hooks in __alloc_pages_internal()
in the first two revisions, but Kamezawa objected to them. In the
scenario that you mention that balance_pgdat() is busy, if we are
under global system memory pressure, even after freeing memory from
soft limited cgroups, we don't have sufficient free memory. We need to
go reclaim from the whole system. An administrator can easily avoid
the above scenario by using hard limits on the cgroup running on CPU1.

> In ideal, if another cpu take another charge, kswapd should shrink 
> soft limit again.
>

Could you please elaborate further?
 
> 
> btw, I don't like "if (!order)" condition. memcg soft limit sould be
> always shrinked although 
> it's the order of because wakeup_kswapd() argument is merely hint.
> 
> another process want another order.
> 

Agreed, I'll remove the check.

> 
> 
> --
> 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>
> 

-- 
	Balbir

--
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:[~2009-03-03 11:17 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-01  6:29 [PATCH 0/4] Memory controller soft limit patches (v3) Balbir Singh
2009-03-01  6:30 ` [PATCH 1/4] Memory controller soft limit documentation (v3) Balbir Singh
2009-03-01  6:30 ` [PATCH 2/4] Memory controller soft limit interface (v3) Balbir Singh
2009-03-02  2:03   ` KAMEZAWA Hiroyuki
2009-03-02  4:46     ` Balbir Singh
2009-03-02  5:35       ` KAMEZAWA Hiroyuki
2009-03-02  6:07         ` Balbir Singh
2009-03-02  6:19           ` KAMEZAWA Hiroyuki
2009-03-02  6:29             ` Balbir Singh
2009-03-01  6:30 ` [PATCH 3/4] Memory controller soft limit organize cgroups (v3) Balbir Singh
2009-03-01  6:30 ` [PATCH 4/4] Memory controller soft limit reclaim on contention (v3) Balbir Singh
2009-03-02  3:08   ` KOSAKI Motohiro
2009-03-02  4:44     ` Balbir Singh
2009-03-03  2:43       ` KOSAKI Motohiro
2009-03-03 11:17         ` Balbir Singh [this message]
2009-03-04  0:07           ` KOSAKI Motohiro
2009-03-02  0:24 ` [PATCH 0/4] Memory controller soft limit patches (v3) KAMEZAWA Hiroyuki
2009-03-02  4:40   ` Balbir Singh
2009-03-02  5:32     ` KAMEZAWA Hiroyuki
2009-03-02  6:05       ` Balbir Singh
2009-03-02  6:18         ` KAMEZAWA Hiroyuki
2009-03-02 17:52           ` Balbir Singh
2009-03-03  0:03             ` KAMEZAWA Hiroyuki
2009-03-03 11:23               ` Balbir Singh
2009-03-02  6:21         ` KAMEZAWA Hiroyuki
2009-03-02  6:36           ` Balbir Singh
2009-03-02  7:06             ` KAMEZAWA Hiroyuki
2009-03-02  7:17               ` KAMEZAWA Hiroyuki
2009-03-02 12:42               ` Balbir Singh
2009-03-02 14:04                 ` KAMEZAWA Hiroyuki
2009-03-02 17:41                   ` Balbir Singh
2009-03-02 23:59                     ` KAMEZAWA Hiroyuki
2009-03-03 11:12                       ` Balbir Singh
2009-03-03 11:50                         ` KAMEZAWA Hiroyuki
2009-03-03 13:14                           ` Balbir Singh
2009-03-05  9:04                         ` KAMEZAWA Hiroyuki
2009-03-05  9:13                           ` KAMEZAWA Hiroyuki
2009-03-05 15:26                           ` Balbir Singh
2009-03-05 23:53                             ` KAMEZAWA Hiroyuki
2009-03-06  3:23                             ` KAMEZAWA Hiroyuki

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=20090303111713.GQ11421@balbir.in.ibm.com \
    --to=balbir@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=bharata@in.ibm.com \
    --cc=dhaval@linux.vnet.ibm.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lizf@cn.fujitsu.com \
    --cc=menage@google.com \
    --cc=riel@redhat.com \
    --cc=rientjes@google.com \
    --cc=skumar@linux.vnet.ibm.com \
    --cc=xemul@openvz.org \
    --cc=yamamoto@valinux.co.jp \
    /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