memcg: improve performance in moving swap charge
authorDaisuke Nishimura <[email protected]>
Wed, 10 Mar 2010 23:22:18 +0000 (15:22 -0800)
committerLinus Torvalds <[email protected]>
Fri, 12 Mar 2010 23:52:36 +0000 (15:52 -0800)
commit483c30b514bd3037fa3f19fa42327c94c10f51c8
treeaaf96db52bf4bdb0c83f209bc9c6a1237867718f
parent024914477e15ef8b17f271ec47f1bb8a589f0806
memcg: improve performance in moving swap charge

Try to reduce overheads in moving swap charge by:

- Adds a new function(__mem_cgroup_put), which takes "count" as a arg and
  decrement mem->refcnt by "count".
- Removed res_counter_uncharge, css_put, and mem_cgroup_put from the path
  of moving swap account, and consolidate all of them into mem_cgroup_clear_mc.
  We cannot do that about mc.to->refcnt.

These changes reduces the overhead from 1.35sec to 0.9sec to move charges
of 1G anonymous memory(including 500MB swap) in my test environment.

Signed-off-by: Daisuke Nishimura <[email protected]>
Cc: Balbir Singh <[email protected]>
Acked-by: KAMEZAWA Hiroyuki <[email protected]>
Cc: Li Zefan <[email protected]>
Cc: Paul Menage <[email protected]>
Cc: Daisuke Nishimura <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/memcontrol.c