Re: [RESEND] [PATCH v1 1/3] Add basic infrastructure for memcg hotplug support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>
>> The iterator internally takes rcu_read_lock() to avoid any side-effects
>> of cgroups added/removed. I suspect you are also suggesting using get_online_mems()
>> around each call to for_each_online_node
>>
>> My understanding so far is
>>
>> 1. invalidate_reclaim_iterators should be safe (no bad side-effects)
>> 2. mem_cgroup_free - should be safe as well
>> 3. mem_cgroup_alloc - needs protection
>> 4. mem_cgroup_init - needs protection
>> 5. mem_cgroup_remove_from_tress - should be safe
> 
> I'm not into the memory hotplug code, but my understanding is that if
> memcg offline happens to race with node unplug, it's possible that
> 
>  - mem_cgroup_free() doesn't free the node's data, because it sees the
>    node as already offline
>  - memcg hotplug code doesn't free the node's data either, because it
>    sees the cgroup as offline
> 
> May be, we should surround all the loops over online nodes with
> get/put_online_mems() to be sure that nothing wrong can happen.
> They are slow path, anyway.
> 

Makes sense, agreed

Balbir

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]