在 2020/4/22 下午9:30, Johannes Weiner 写道: > On Wed, Apr 22, 2020 at 11:14:40AM +0800, Alex Shi wrote: >> >> >> 在 2020/4/21 下午10:39, Johannes Weiner 写道: >>> Hi Alex, >>> >>> thanks for your quick review so far, I'll add the tags to the patches. >>> >>> On Tue, Apr 21, 2020 at 05:27:30PM +0800, Alex Shi wrote: >>>> >>>> >>>> 在 2020/4/21 上午6:11, Johannes Weiner 写道: >>>>> The swapaccount=0 boot option will continue to exist, and it will >>>>> eliminate the page_counter overhead and hide the swap control files, >>>>> but it won't disable swap slot ownership tracking. >>>> >>>> May we add extra explanation for this change to user? and the default >>>> memsw limitations? >>> >>> Can you elaborate what you think is missing and where you would like >>> to see it documented? >>> >> Maybe the following doc change is better after whole patchset? >> Guess users would would happy to know details of this change. > > Thanks, I stole your patch and extended/tweaked it a little. Would you > mind providing your Signed-off-by:? My pleasure. :) Signed-off-by: Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx> > > From 589d3c1b505e6671b4a9b424436c9eda88a0b08c Mon Sep 17 00:00:00 2001 > From: Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx> > Date: Wed, 22 Apr 2020 11:14:40 +0800 > Subject: [PATCH] mm: memcontrol: document the new swap control behavior > > Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxx> > --- > .../admin-guide/cgroup-v1/memory.rst | 19 +++++++------------ > 1 file changed, 7 insertions(+), 12 deletions(-) > > diff --git a/Documentation/admin-guide/cgroup-v1/memory.rst b/Documentation/admin-guide/cgroup-v1/memory.rst > index 0ae4f564c2d6..12757e63b26c 100644 > --- a/Documentation/admin-guide/cgroup-v1/memory.rst > +++ b/Documentation/admin-guide/cgroup-v1/memory.rst > @@ -199,11 +199,11 @@ An RSS page is unaccounted when it's fully unmapped. A PageCache page is > unaccounted when it's removed from radix-tree. Even if RSS pages are fully > unmapped (by kswapd), they may exist as SwapCache in the system until they > are really freed. Such SwapCaches are also accounted. > -A swapped-in page is not accounted until it's mapped. > +A swapped-in page is accounted after adding into swapcache. > > Note: The kernel does swapin-readahead and reads multiple swaps at once. > -This means swapped-in pages may contain pages for other tasks than a task > -causing page fault. So, we avoid accounting at swap-in I/O. > +Since page's memcg recorded into swap whatever memsw enabled, the page will > +be accounted after swapin. > > At page migration, accounting information is kept. > > @@ -222,18 +222,13 @@ 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_MEMCG_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_MEMCG_SWAP) > +2.4 Swap Extension > -------------------------------------- > > -Swap Extension allows you to record charge for swap. A swapped-in page is > -charged back to original page allocator if possible. > +Swap usage is always recorded for each of cgroup. Swap Extension allows you to > +read and limit it. > > -When swap is accounted, following files are added. > +When CONFIG_SWAP is enabled, following files are added. > > - memory.memsw.usage_in_bytes. > - memory.memsw.limit_in_bytes. >