|
@@ -184,12 +184,14 @@ behind this approach is that a cgroup that aggressively uses a shared
|
|
|
page will eventually get charged for it (once it is uncharged from
|
|
|
the cgroup that brought it in -- this will happen on memory pressure).
|
|
|
|
|
|
+But see section 8.2: when moving a task to another cgroup, its pages may
|
|
|
+be recharged to the new cgroup, if move_charge_at_immigrate has been chosen.
|
|
|
+
|
|
|
Exception: If CONFIG_CGROUP_CGROUP_MEM_RES_CTLR_SWAP is not used.
|
|
|
When you do swapoff and make swapped-out pages of shmem(tmpfs) to
|
|
|
be backed into memory in force, charges for pages are accounted against the
|
|
|
caller of swapoff rather than the users of shmem.
|
|
|
|
|
|
-
|
|
|
2.4 Swap Extension (CONFIG_CGROUP_MEM_RES_CTLR_SWAP)
|
|
|
|
|
|
Swap Extension allows you to record charge for swap. A swapped-in page is
|
|
@@ -615,8 +617,7 @@ memory cgroup.
|
|
|
bit | what type of charges would be moved ?
|
|
|
-----+------------------------------------------------------------------------
|
|
|
0 | A charge of an anonymous page(or swap of it) used by the target task.
|
|
|
- | Those pages and swaps must be used only by the target task. You must
|
|
|
- | enable Swap Extension(see 2.4) to enable move of swap charges.
|
|
|
+ | You must enable Swap Extension(see 2.4) to enable move of swap charges.
|
|
|
-----+------------------------------------------------------------------------
|
|
|
1 | A charge of file pages(normal file, tmpfs file(e.g. ipc shared memory)
|
|
|
| and swaps of tmpfs file) mmapped by the target task. Unlike the case of
|
|
@@ -629,8 +630,6 @@ memory cgroup.
|
|
|
|
|
|
8.3 TODO
|
|
|
|
|
|
-- Implement madvise(2) to let users decide the vma to be moved or not to be
|
|
|
- moved.
|
|
|
- All of moving charge operations are done under cgroup_mutex. It's not good
|
|
|
behavior to hold the mutex too long, so we may need some trick.
|
|
|
|