Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755401AbbHGBik (ORCPT ); Thu, 6 Aug 2015 21:38:40 -0400 Received: from mgwym03.jp.fujitsu.com ([211.128.242.42]:15942 "EHLO mgwym03.jp.fujitsu.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753846AbbHGBij (ORCPT ); Thu, 6 Aug 2015 21:38:39 -0400 X-SecurityPolicyCheck: OK by SHieldMailChecker v2.3.2 X-SHieldMailCheckerPolicyVersion: FJ-ISEC-20150223 X-SHieldMailCheckerMailID: 02c1e75bad994bb3b413d993747eaf51 Subject: Re: [PATCH 0/3] Make workingset detection logic memcg aware To: Vladimir Davydov References: <55C16842.9040505@jp.fujitsu.com> <20150806085911.GL11971@esperanza> Cc: Andrew Morton , Johannes Weiner , Michal Hocko , Minchan Kim , Rik van Riel , Mel Gorman , linux-mm@kvack.org, linux-kernel@vger.kernel.org From: Kamezawa Hiroyuki Message-ID: <55C40C08.8010706@jp.fujitsu.com> Date: Fri, 7 Aug 2015 10:38:16 +0900 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <20150806085911.GL11971@esperanza> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-TM-AS-MML: disable Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3181 Lines: 87 On 2015/08/06 17:59, Vladimir Davydov wrote: > On Wed, Aug 05, 2015 at 10:34:58AM +0900, Kamezawa Hiroyuki wrote: > >> Reading discussion, I feel storing more data is difficult, too. > > Yep, even with the current 16-bit memcg id. Things would get even worse > if we wanted to extend it one day (will we?) > >> >> I wonder, rather than collecting more data, rough calculation can help the situation. >> for example, >> >> (refault_disatance calculated in zone) * memcg_reclaim_ratio < memcg's active list >> >> If one of per-zone calc or per-memcg calc returns true, refault should be true. >> >> memcg_reclaim_ratio is the percentage of scan in a memcg against in a zone. > > This particular formula wouldn't work I'm afraid. If there are two > isolated cgroups issuing local reclaim on the same zone, the refault > distance needed for activation would be reduced by half for no apparent > reason. Hmm, you mean activation in memcg means activation in global LRU, and it's not a valid reason. Current implementation does have the same issue, right ? i.e. when a container has been hitting its limit for a while, and then, a file cache is pushed out but came back soon, it can be easily activated. I'd like to confirm what you want to do. 1) avoid activating a file cache when it was kicked out because of memcg's local limit. 2) maintain acitve/inactive ratio in memcg properly as global LRU does. 3) reclaim shadow entry at proper timing. All ? hmm. It seems that mixture of record of global memory pressure and of local memory pressure is just wrong. Now, the record is          eviction | node | zone | 2bit. How about changing this as 0 |eviction | node | zone | 2bit 1 |eviction | memcgid | 2bit Assume each memcg has an eviction counter, which ignoring node/zone. i.e. memcg local reclaim happens against memcg not against zone. At page-in, if (the 1st bit is 0) compare eviction counter with zone's counter and activate the page if needed. else if (the 1st bit is 1) compare eviction counter with the memcg (if exists) if (current memcg == recorded memcg && eviction distance is okay) activate page. else inactivate At page-out if (global memory pressure) record eviction id with using zone's counter. else if (memcg local memory pressure) record eviction id with memcg's counter. By this, 1) locally reclaimed pages cannot be activated unless it's refaulted in the same memcg. In this case, activating in the memcg has some meaning. 2) At global memory pressure, distance is properly calculated based on global system status. global memory pressure can ignore memcg's behavior. about shadow entries, kmemcg should take care of it.... Thanks, -Kame -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/