Re: [RFC] [PATCH 3/7 v2] memcg: remove PCG_MOVE_LOCK flag from pc->flags
From: Kirill A. Shutemov <hidden>
Date: 2012-01-16 12:55:07
Also in:
linux-mm
On Fri, Jan 13, 2012 at 05:40:19PM +0900, KAMEZAWA Hiroyuki wrote:
From 1008e84d94245b1e7c4d237802ff68ff00757736 Mon Sep 17 00:00:00 2001 From: KAMEZAWA Hiroyuki <redacted> Date: Thu, 12 Jan 2012 15:53:24 +0900 Subject: [PATCH 3/7] memcg: remove PCG_MOVE_LOCK flag from pc->flags. PCG_MOVE_LOCK bit is used for bit spinlock for avoiding race between memcg's account moving and page state statistics updates. Considering page-statistics update, very hot path, this lock is taken only when someone is moving account (or PageTransHuge()) And, now, all moving-account between memcgroups (by task-move) are serialized. So, it seems too costly to have 1bit per page for this purpose. This patch removes PCG_MOVE_LOCK and add hashed rwlock array instead of it. This works well enough. Even when we need to take the lock, we don't need to disable IRQ in hot path because of using rwlock. Signed-off-by: KAMEZAWA Hiroyuki <redacted>
...
+#define NR_MOVE_ACCOUNT_LOCKS (NR_CPUS) +#define move_account_hash(page) ((page_to_pfn(page) % NR_MOVE_ACCOUNT_LOCKS))
You still tend to add too many parentheses into macros ;) -- 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: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>