All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Weiner <hannes@cmpxchg.org>
To: Hugh Dickins <hughd@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Konstantin Khlebnikov <khlebnikov@openvz.org>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH v2 next] memcg: fix deadlock by avoiding stat lock when anon
Date: Thu, 1 Mar 2012 11:00:35 +0100	[thread overview]
Message-ID: <20120301100035.GC1665@cmpxchg.org> (raw)
In-Reply-To: <alpine.LSU.2.00.1202291843120.14002@eggly.anvils>

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 <hughd@google.com>

Agreed, let's keep that lock ordering for now, and the comment makes
it clear.  Thanks!

Acked-by: Johannes Weiner <hannes@cmpxchg.org>

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

WARNING: multiple messages have this Message-ID (diff)
From: Johannes Weiner <hannes@cmpxchg.org>
To: Hugh Dickins <hughd@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Konstantin Khlebnikov <khlebnikov@openvz.org>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH v2 next] memcg: fix deadlock by avoiding stat lock when anon
Date: Thu, 1 Mar 2012 11:00:35 +0100	[thread overview]
Message-ID: <20120301100035.GC1665@cmpxchg.org> (raw)
In-Reply-To: <alpine.LSU.2.00.1202291843120.14002@eggly.anvils>

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 <hughd@google.com>

Agreed, let's keep that lock ordering for now, and the comment makes
it clear.  Thanks!

Acked-by: Johannes Weiner <hannes@cmpxchg.org>

  parent reply	other threads:[~2012-03-01 10:00 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-29  5:25 [PATCH 3.3] memcg: fix deadlock by inverting lrucare nesting Hugh Dickins
2012-02-29  5:25 ` Hugh Dickins
2012-02-29  5:26 ` [PATCH next] memcg: fix deadlock by avoiding stat lock when anon Hugh Dickins
2012-02-29  5:26   ` Hugh Dickins
2012-02-29 19:35   ` Johannes Weiner
2012-02-29 19:35     ` Johannes Weiner
2012-03-01  1:18     ` Hugh Dickins
2012-03-01  1:18       ` Hugh Dickins
2012-03-01  2:44       ` [PATCH v2 " Hugh Dickins
2012-03-01  2:44         ` Hugh Dickins
2012-03-01  9:18         ` KAMEZAWA Hiroyuki
2012-03-01  9:18           ` KAMEZAWA Hiroyuki
2012-03-01 10:00         ` Johannes Weiner [this message]
2012-03-01 10:00           ` Johannes Weiner
2012-02-29  5:28 ` [PATCH next] memcg: remove PCG_FILE_MAPPED fix cosmetic fix Hugh Dickins
2012-02-29  5:28   ` Hugh Dickins
2012-02-29  5:40   ` KAMEZAWA Hiroyuki
2012-02-29  5:40     ` KAMEZAWA Hiroyuki
2012-02-29 19:35   ` Johannes Weiner
2012-02-29 19:35     ` Johannes Weiner
2012-02-29  5:30 ` [PATCH next] memcg: remove PCG_CACHE page_cgroup flag fix Hugh Dickins
2012-02-29  5:30   ` Hugh Dickins
2012-02-29  5:54   ` KAMEZAWA Hiroyuki
2012-02-29  5:54     ` KAMEZAWA Hiroyuki
2012-02-29 19:43   ` Johannes Weiner
2012-02-29 19:43     ` Johannes Weiner
2012-03-01  1:21     ` Hugh Dickins
2012-03-01  1:21       ` Hugh Dickins
2012-03-01  2:42       ` [PATCH next] memcg: remove PCG_CACHE page_cgroup flag fix2 Hugh Dickins
2012-03-01  2:42         ` Hugh Dickins
2012-03-01  9:16         ` KAMEZAWA Hiroyuki
2012-03-01  9:16           ` KAMEZAWA Hiroyuki
2012-02-29  5:39 ` [PATCH 3.3] memcg: fix deadlock by inverting lrucare nesting KAMEZAWA Hiroyuki
2012-02-29  5:39   ` KAMEZAWA Hiroyuki
2012-02-29 19:00 ` Johannes Weiner
2012-02-29 19:00   ` Johannes Weiner
2012-02-29 22:04 ` Andrew Morton
2012-02-29 22:04   ` Andrew Morton
2012-03-01  0:43   ` Hugh Dickins
2012-03-01  0:43     ` Hugh Dickins

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=20120301100035.GC1665@cmpxchg.org \
    --to=hannes@cmpxchg.org \
    --cc=akpm@linux-foundation.org \
    --cc=hughd@google.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=khlebnikov@openvz.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    /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.