Messages in this thread |  | | | Date | Wed, 01 Oct 2008 11:29:04 +0530 | | From | Balbir Singh <> | | Subject | Re: [PATCH 9/12] memcg allocate all page_cgroup at boot |
KAMEZAWA Hiroyuki wrote:
> On Wed, 1 Oct 2008 14:07:48 +0900
> KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:
>>> Can we make this patch indepedent of the flags changes and push it in ASAP.
>>>
>> Need much work....Hmm..rewrite all again ?
>>
>
> BTW, do you have good idea to modify flag bit without affecting LOCK bit on
> page_cgroup->flags ?
>
> At least, we'll have to set ACTIVE/INACTIVE/UNEVICTABLE flags dynamically.
> take lock_page_cgroup() always ?
In the past patches, I've used lock_page_cgroup(). In some cases like
initialization at boot time, I've ignored taking the lock, since I know no-one
is accessing them yet.
> __mem_cgroup_move_lists() will have some amount of changes. And we should
> check dead lock again.
__mem_cgroup_move_lists() is called from mem_cgroup_isolate_pages() and
mem_cgroup_move_lists(). In mem_cgroup_move_lists(), we have the page_cgroup
lock. I think the current code works on the assumption (although not documented
anywhere I've seen), that PAGE_CGROUP_FLAG_INACTIVE/ACTIVE/UNEVICTABLE bits are
protected by lru_lock. Please look at
__mem_cgroup_remove_list
__mem_cgroup_add_list
__mem_cgroup_move_lists
__mem_cgroup_charge_common (sets this flag, before the pc is associated with the
page).
Am I missing something (today is holiday here, so I am in a bit of a lazy/sleepy
mood :) )
--
Balbir
|  |