Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: KAMEZAWA Hiroyuki
Date: Wednesday, April 14, 2010 - 11:54 pm

On Thu, 15 Apr 2010 15:21:04 +0900
Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> wrote:
Hmm, maybe worth to try. We may be able to set/clear all DIRTY/WRITBACK bit
on page_cgroup without mapping->tree_lock.
In such case, of course, the page itself should be locked by lock_page().

But.Hmm..for example.

account_page_dirtied() is the best place to mark page_cgroup dirty. But
it's called under mapping->tree_lock.

Another thinking:
I wonder we may have to change our approach for dirty page acccounting.

Please see task_dirty_inc(). It's for per task dirty limiting.
And you'll notice soon that there is no task_dirty_dec().

Making use of lib/proportions.c's proportion calculation as task_dirty limit or
per-bdi dirty limit does is worth to be considered.
This is very simple and can be implemented without problems we have now.
(Need to think about algorithm itself, but it's used and works well.)
We'll never see complicated race condtions.

I know some guys wants "accurate" accounting, but I myself don't want too much.
Using propotions.c can offer us unified approach with per-task dirty accounting.
or per-bid dirty accouting.

If we do so, memcg will have interface like per-bdi dirty ratio (see below)
[kamezawa@bluextal kvm2]$ ls /sys/block/dm-0/bdi/
max_ratio  min_ratio  power  read_ahead_kb  subsystem  uevent

Maybe
  memory.min_ratio
  memory.max_ratio

And use this instead of  task_dirty_limit(current, pbdi_dirty); As

	if (mem_cgroup_dirty_ratio_support(current)) // return 0 if root cgroup
		memcg_dirty_limit(current, pbdi_dirty, xxxx?);
	else
		task_dirty_limit(current, pbdi_diryt)

To be honest, I don't want to increase caller of lock_page_cgroup() and don't
want to see complicated race conditions.

Thanks,
-Kame




--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH -mmotm 0/5] memcg: per cgroup dirty limit (v7), Andrea Righi, (Sun Mar 14, 4:26 pm)
[PATCH -mmotm 2/5] memcg: dirty memory documentation, Andrea Righi, (Sun Mar 14, 4:26 pm)
[PATCH -mmotm 5/5] memcg: dirty pages instrumentation, Andrea Righi, (Sun Mar 14, 4:26 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, KAMEZAWA Hiroyuki, (Sun Mar 14, 5:06 pm)
Re: [PATCH -mmotm 4/5] memcg: dirty pages accounting and l ..., KAMEZAWA Hiroyuki, (Sun Mar 14, 7:26 pm)
Re: [PATCH -mmotm 5/5] memcg: dirty pages instrumentation, KAMEZAWA Hiroyuki, (Sun Mar 14, 7:31 pm)
Re: [PATCH -mmotm 0/5] memcg: per cgroup dirty limit (v7), KAMEZAWA Hiroyuki, (Sun Mar 14, 7:36 pm)
Re: [PATCH -mmotm 4/5] memcg: dirty pages accounting and l ..., Daisuke Nishimura, (Mon Mar 15, 7:32 pm)
Re: [PATCH -mmotm 2/5] memcg: dirty memory documentation, Daisuke Nishimura, (Tue Mar 16, 12:41 am)
Re: [PATCH -mmotm 4/5] memcg: dirty pages accounting and l ..., Daisuke Nishimura, (Tue Mar 16, 8:09 am)
Re: [PATCH -mmotm 0/5] memcg: per cgroup dirty limit (v7), Balbir Singh, (Tue Mar 16, 11:44 pm)
Re: [PATCH -mmotm 0/5] memcg: per cgroup dirty limit (v7), Balbir Singh, (Wed Mar 17, 11:53 am)
Re: [PATCH -mmotm 2/5] memcg: dirty memory documentation, Balbir Singh, (Wed Mar 17, 12:02 pm)
Re: [PATCH -mmotm 0/5] memcg: per cgroup dirty limit (v7), Balbir Singh, (Wed Mar 17, 12:17 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, KAMEZAWA Hiroyuki, (Wed Mar 17, 4:54 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, KAMEZAWA Hiroyuki, (Wed Mar 17, 5:45 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, Daisuke Nishimura, (Wed Mar 17, 7:16 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, KAMEZAWA Hiroyuki, (Wed Mar 17, 7:58 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, KAMEZAWA Hiroyuki, (Wed Mar 17, 9:21 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, KAMEZAWA Hiroyuki, (Wed Mar 17, 9:35 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, KAMEZAWA Hiroyuki, (Thu Mar 18, 6:23 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, KAMEZAWA Hiroyuki, (Thu Mar 18, 8:00 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, KAMEZAWA Hiroyuki, (Wed Apr 14, 2:29 am)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, KAMEZAWA Hiroyuki, (Wed Apr 14, 5:14 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, KAMEZAWA Hiroyuki, (Wed Apr 14, 5:22 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, Daisuke Nishimura, (Wed Apr 14, 7:40 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, Daisuke Nishimura, (Wed Apr 14, 11:21 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, KAMEZAWA Hiroyuki, (Wed Apr 14, 11:54 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, KAMEZAWA Hiroyuki, (Fri Apr 23, 7:19 pm)
Re: [PATCH -mmotm 1/5] memcg: disable irq at page cgroup lock, KAMEZAWA Hiroyuki, (Fri Apr 23, 7:22 pm)