From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from psmtp.com (na3sys010amx192.postini.com [74.125.245.192]) by kanga.kvack.org (Postfix) with SMTP id 45C886B007E for ; Wed, 7 Mar 2012 17:16:21 -0500 (EST) Date: Thu, 8 Mar 2012 01:08:19 +0200 From: "Kirill A. Shutemov" Subject: Re: [PATCH] memcg: Free spare array to avoid memory leak Message-ID: <20120307230819.GA10238@shutemov.name> References: <1331036004-7550-1-git-send-email-handai.szj@taobao.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <1331036004-7550-1-git-send-email-handai.szj@taobao.com> Sender: owner-linux-mm@kvack.org List-ID: To: Sha Zhengju Cc: linux-mm@kvack.org, cgroups@vger.kernel.org, kamezawa.hiroyu@jp.fujitsu.com, Sha Zhengju On Tue, Mar 06, 2012 at 08:13:24PM +0800, Sha Zhengju wrote: > From: Sha Zhengju >=20 > When the last event is unregistered, there is no need to keep the spare > array anymore. So free it to avoid memory leak. It's not a leak. It will be freed on next event register. Yeah, we don't have to keep spare if primary is empty. But is it worth to make code more complicated to save few bytes of memory? >=20 > Signed-off-by: Sha Zhengju >=20 > --- > mm/memcontrol.c | 6 ++++++ > 1 files changed, 6 insertions(+), 0 deletions(-) >=20 > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 22d94f5..3c09a84 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -4412,6 +4412,12 @@ static void mem_cgroup_usage_unregister_event(stru= ct cgroup *cgrp, > swap_buffers: > /* Swap primary and spare array */ > thresholds->spare =3D thresholds->primary; > + /* If all events are unregistered, free the spare array */ > + if (!new) { > + kfree(thresholds->spare); > + thresholds->spare =3D NULL; > + } > + > rcu_assign_pointer(thresholds->primary, new); > =20 > /* To be sure that nobody uses thresholds */ > --=20 > 1.7.4.1 >=20 --=20 Kirill A. Shutemov -- 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