From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from psmtp.com (na3sys010amx107.postini.com [74.125.245.107]) by kanga.kvack.org (Postfix) with SMTP id DA2186B002C for ; Thu, 1 Mar 2012 05:00:49 -0500 (EST) Date: Thu, 1 Mar 2012 11:00:35 +0100 From: Johannes Weiner Subject: Re: [PATCH v2 next] memcg: fix deadlock by avoiding stat lock when anon Message-ID: <20120301100035.GC1665@cmpxchg.org> References: <20120229193517.GD1673@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: owner-linux-mm@kvack.org List-ID: To: Hugh Dickins Cc: Andrew Morton , KAMEZAWA Hiroyuki , Konstantin Khlebnikov , linux-kernel@vger.kernel.org, linux-mm@kvack.org On Wed, Feb 29, 2012 at 06:44:59PM -0800, Hugh Dickins wrote: > Fix deadlock in "memcg: use new logic for page stat accounting". > > page_remove_rmap() first calls mem_cgroup_begin_update_page_stat(), > which may take move_lock_mem_cgroup(), unlocked at the end of > page_remove_rmap() by mem_cgroup_end_update_page_stat(). > > The PageAnon case never needs to mem_cgroup_dec_page_stat(page, > MEMCG_NR_FILE_MAPPED); but it often needs to mem_cgroup_uncharge_page(), > which does lock_page_cgroup(), while holding that move_lock_mem_cgroup(). > Whereas mem_cgroup_move_account() calls move_lock_mem_cgroup() while > holding lock_page_cgroup(). > > Since mem_cgroup_begin and end are unnecessary here for PageAnon, > simply avoid the deadlock and wasted calls in that case. > > Signed-off-by: Hugh Dickins Agreed, let's keep that lock ordering for now, and the comment makes it clear. Thanks! Acked-by: Johannes Weiner -- 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