[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20101015170627.e5033fa4.kamezawa.hiroyu@jp.fujitsu.com>
Date: Fri, 15 Oct 2010 17:06:27 +0900
From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>
To: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Cc: "linux-mm@...ck.org" <linux-mm@...ck.org>,
"nishimura@....nes.nec.co.jp" <nishimura@....nes.nec.co.jp>,
"balbir@...ux.vnet.ibm.com" <balbir@...ux.vnet.ibm.com>,
Greg Thelen <gthelen@...gle.com>,
"akpm@...ux-foundation.org" <akpm@...ux-foundation.org>
Subject: [RFC][PATCH 0/2] memcg: some updates to move_account and file_stat
races
At implementing dirty page accounting support, one of problem is that
PG_writeback update can be called in IRQ context. So, following kind of dead-lock
can be considered.
lock_page_cgroup()
<--------------- IRQ
try to update Writeback state of memcg
lock_page_cgroup()
DEAD LOCK
To avoid this, one idea is IRQ disabling in lock_page_cgroup() but our concern is
it's too heavy.
Considering more, there are facts
- why update_file_stat() has to take lock_page_cgroup() is just for avoiding
race with move_account(). There are no race with charge/uncharge.
So, this series adds a new lock for mutual exection of move_account() and
update_file_stat(). This lock is always taken under IRQ disable.
This adds new lock to move_account()....so this makes move_account() slow.
It's a trade-off to be considered.
This series contains 2 patches. One is a trial to performance improvement,
next one is adding a new lock.
They are independent from each other.
All are onto mmotm-1014 + removing memcg-reduce-lock-hold-time-during-charge-moving.patch
Scores on my box at moving 8GB anon process.
== mmotm ==
root@...extal kamezawa]# time echo 2530 > /cgroup/B/tasks
real 0m0.792s
user 0m0.000s
sys 0m0.780s
== After patch 1==
[root@...extal kamezawa]# time echo 2257 > /cgroup/B/tasks
real 0m0.694s
user 0m0.000s
sys 0m0.683s
[After Patch #2]
[root@...extal kamezawa]# time echo 2238 > /cgroup/B/tasks
real 0m0.741s
user 0m0.000s
sys 0m0.730s
Any comments/advices are welcome.
Thanks,
-Kame
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists