(2013/03/06 19:52), Glauber Costa wrote: > On 03/06/2013 02:45 PM, Kamezawa Hiroyuki wrote: >> (2013/03/06 17:30), Glauber Costa wrote: >>> On 03/06/2013 04:27 AM, Kamezawa Hiroyuki wrote: >>>> (2013/03/05 22:10), Glauber Costa wrote: >>>>> + case _MEMSWAP: { >>>>> + struct sysinfo i; >>>>> + si_swapinfo(&i); >>>>> + >>>>> + return ((memcg_read_root_rss() + >>>>> + atomic_long_read(&vm_stat[NR_FILE_PAGES])) << PAGE_SHIFT) + >>>>> + i.totalswap - i.freeswap; >>>> >>>> How swapcache is handled ? ...and How kmem works with this calc ? >>>> >>> I am ignoring kmem, because we don't account kmem for the root cgroup >>> anyway. >>> >>> Setting the limit is invalid, and we don't account until the limit is >>> set. Then it will be 0, always. >>> >>> For swapcache, I am hoping that totalswap - freeswap will cover >>> everything swap related. If you think I am wrong, please enlighten me. >>> >> >> i.totalswap - i.freeswap = # of used swap entries. >> >> SwapCache can be rss and used swap entry at the same time. >> > > Well, yes, but the rss entries would be accounted for in get_mm_rss(), > won't they ? > > What am I missing ? I think the correct caluculation is Sum of all RSS + All file caches + (i.total_swap - i.freeswap - # of mapped SwapCache) In the patch, mapped SwapCache is counted as both of rss and swap. BTW, how about Sum of all LRU + (i.total_swap - i.freeswap - # of all SwapCache) ? Thanks, -Kame -- 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>