Thread (50 messages) 50 messages, 5 authors, 2012-01-26

Re: [RFC] [PATCH 3/7 v2] memcg: remove PCG_MOVE_LOCK flag from pc->flags

From: KAMEZAWA Hiroyuki <hidden>
Date: 2012-01-18 00:13:58
Also in: cgroups

On Tue, 17 Jan 2012 17:46:05 +0100
Michal Hocko [off-list ref] wrote:
On Fri 13-01-12 17:40:19, KAMEZAWA Hiroyuki wrote:
quoted
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())
Outdated comment? THP is not an issue here.
Ah, sorry. I reorderd patches.
quoted
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, 
Hmmm, rwlocks are not popular these days very much. 
Anyway, can we rather make it (source) memcg (bit)spinlock instead. We
would reduce false sharing this way and would penalize only pages from
the moving group.
per-memcg spinlock ? The reason I used rwlock() is to avoid disabling IRQ.
This routine will be called by IRQ context (for dirty ratio support).
So, IRQ disable will be required if we use spinlock.

Thanks,
-Kame








--
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>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help