diff options
| author | Hirokazu Takahashi <[email protected]> | 2008-03-04 14:29:15 -0800 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2008-03-04 16:35:15 -0800 |
| commit | 9b3c0a07e0fca35e36751680de3e4c76dbff5df3 (patch) | |
| tree | 3dd6355a88282ea5577a05b7f2d2d3ae216ab9a8 /include/linux | |
| parent | 2680eed723b664d83e6181ae275fac0ec8fa05ff (diff) | |
memcg: simplify force_empty and move_lists
As for force_empty, though this may not be the main topic here,
mem_cgroup_force_empty_list() can be implemented simpler. It is possible to
make the function just call mem_cgroup_uncharge_page() instead of releasing
page_cgroups by itself. The tip is to call get_page() before invoking
mem_cgroup_uncharge_page(), so the page won't be released during this
function.
Kamezawa-san points out that by the time mem_cgroup_uncharge_page() uncharges,
the page might have been reassigned to an lru of a different mem_cgroup, and
now be emptied from that; but Hugh claims that's okay, the end state is the
same as when it hasn't gone to another list.
And once force_empty stops taking lock_page_cgroup within mz->lru_lock,
mem_cgroup_move_lists() can be simplified to take mz->lru_lock directly while
holding page_cgroup lock (but still has to use try_lock_page_cgroup).
Signed-off-by: Hirokazu Takahashi <[email protected]>
Signed-off-by: Hugh Dickins <[email protected]>
Cc: David Rientjes <[email protected]>
Cc: Balbir Singh <[email protected]>
Cc: KAMEZAWA Hiroyuki <[email protected]>
Cc: YAMAMOTO Takashi <[email protected]>
Cc: Paul Menage <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions