Messages in this thread | | | Date | Wed, 30 Sep 2009 19:04:17 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | [RFC][PATCH 0/2] memcg: replace memcg's per cpu status counter with array counter like vmstat |
| |
Hi,
In current implementation, memcg uses its own percpu counters for counting evetns and # of RSS, CACHES. Now, counter is maintainer per cpu without any synchronization as vm_stat[] or percpu_counter. So, this is update-is-fast-but-read-is-slow conter.
Because "read" for these counter was only done by memory.stat file, I thought read-side-slowness was acceptable. Amount of memory usage, which affects memory limit check, can be read by memory.usage_in_bytes. It's maintained by res_counter.
But in current -rc, root memcg's memory usage is calcualted by this per cpu counter and read side slowness may be trouble if it's frequently read.
And, in recent discusstion, I wonder we should maintain NR_DIRTY etc... in memcg. So, slow-read-counter will not match our requirements, I guess. I want some counter like vm_stat[] in memcg.
This 2 patches are for using counter like vm_stat[] in memcg. Just an idea level implementaion but I think this is not so bad.
I confirmed this patch works well. I'm now thinking how to test performance...
Any comments are welcome. This patch is onto mmotm + some myown patches...so...this is just an RFC.
Regards, -Kame
| |