From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail144.messagelabs.com (mail144.messagelabs.com [216.82.254.51]) by kanga.kvack.org (Postfix) with ESMTP id 53A8B900086 for ; Sun, 17 Apr 2011 22:22:11 -0400 (EDT) Received: by iyh42 with SMTP id 42so5300131iyh.14 for ; Sun, 17 Apr 2011 19:22:09 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <1302909815-4362-6-git-send-email-yinghan@google.com> References: <1302909815-4362-1-git-send-email-yinghan@google.com> <1302909815-4362-6-git-send-email-yinghan@google.com> Date: Mon, 18 Apr 2011 11:22:09 +0900 Message-ID: Subject: Re: [PATCH V5 05/10] Implement the select_victim_node within memcg. From: Minchan Kim Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Sender: owner-linux-mm@kvack.org List-ID: To: Ying Han Cc: KOSAKI Motohiro , Daisuke Nishimura , Balbir Singh , Tejun Heo , Pavel Emelyanov , KAMEZAWA Hiroyuki , Andrew Morton , Li Zefan , Mel Gorman , Christoph Lameter , Johannes Weiner , Rik van Riel , Hugh Dickins , Michal Hocko , Dave Hansen , Zhu Yanhai , linux-mm@kvack.org On Sat, Apr 16, 2011 at 8:23 AM, Ying Han wrote: > This add the mechanism for background reclaim which we remember the > last scanned node and always starting from the next one each time. > The simple round-robin fasion provide the fairness between nodes for > each memcg. > > changelog v5..v4: > 1. initialize the last_scanned_node to MAX_NUMNODES. > > changelog v4..v3: > 1. split off from the per-memcg background reclaim patch. > > Signed-off-by: Ying Han > --- > =C2=A0include/linux/memcontrol.h | =C2=A0 =C2=A03 +++ > =C2=A0mm/memcontrol.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| =C2=A0 3= 5 +++++++++++++++++++++++++++++++++++ > =C2=A02 files changed, 38 insertions(+), 0 deletions(-) > > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h > index f7ffd1f..d4ff7f2 100644 > --- a/include/linux/memcontrol.h > +++ b/include/linux/memcontrol.h > @@ -88,6 +88,9 @@ extern int mem_cgroup_init_kswapd(struct mem_cgroup *me= m, > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct kswapd *kswapd_p); > =C2=A0extern void mem_cgroup_clear_kswapd(struct mem_cgroup *mem); > =C2=A0extern wait_queue_head_t *mem_cgroup_kswapd_wait(struct mem_cgroup = *mem); > +extern int mem_cgroup_last_scanned_node(struct mem_cgroup *mem); > +extern int mem_cgroup_select_victim_node(struct mem_cgroup *mem, > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 const nodema= sk_t *nodes); > > =C2=A0static inline > =C2=A0int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cg= roup *cgroup) > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 8761a6f..b92dc13 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -279,6 +279,11 @@ struct mem_cgroup { > =C2=A0 =C2=A0 =C2=A0 =C2=A0u64 high_wmark_distance; > =C2=A0 =C2=A0 =C2=A0 =C2=A0u64 low_wmark_distance; > > + =C2=A0 =C2=A0 =C2=A0 /* While doing per cgroup background reclaim, we c= ache the Correct comment style. --=20 Kind regards, Minchan Kim -- 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: email@kvack.org