Messages in this thread | | | Date | Thu, 11 Mar 2010 14:13:00 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | Re: [PATCH mmotm 2.5/4] memcg: disable irq at page cgroup lock (Re: [PATCH -mmotm 3/4] memcg: dirty pages accounting and limiting infrastructure) |
| |
On Thu, 11 Mar 2010 13:58:47 +0900 Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> wrote: > > I'll consider yet another fix for race in account migration if I can. > > > me too. >
How about this ? Assume that the race is very rare.
1. use trylock when updating statistics. If trylock fails, don't account it.
2. add PCG_FLAG for all status as
+ PCG_ACCT_FILE_MAPPED, /* page is accounted as file rss*/ + PCG_ACCT_DIRTY, /* page is dirty */ + PCG_ACCT_WRITEBACK, /* page is being written back to disk */ + PCG_ACCT_WRITEBACK_TEMP, /* page is used as temporary buffer for FUSE */ + PCG_ACCT_UNSTABLE_NFS, /* NFS page not yet committed to the server */
3. At reducing counter, check PCG_xxx flags by TESTCLEARPCGFLAG()
This is similar to an _used_ method of LRU accounting. And We can think this method's error-range never go too bad number.
I think this kind of fuzzy accounting is enough for writeback status. Does anyone need strict accounting ?
Thanks, -Kame
| |