From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932642AbeAOM3P (ORCPT + 1 other); Mon, 15 Jan 2018 07:29:15 -0500 Received: from mail-eopbgr20132.outbound.protection.outlook.com ([40.107.2.132]:55712 "EHLO EUR02-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753741AbeAOM3N (ORCPT ); Mon, 15 Jan 2018 07:29:13 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=aryabinin@virtuozzo.com; Subject: Re: [PATCH v4] mm/memcg: try harder to decrease [memory,memsw].limit_in_bytes To: Shakeel Butt , Michal Hocko Cc: Andrew Morton , Johannes Weiner , Vladimir Davydov , Cgroups , Linux MM , LKML References: <20180109152622.31ca558acb0cc25a1b14f38c@linux-foundation.org> <20180110124317.28887-1-aryabinin@virtuozzo.com> <20180111104239.GZ1732@dhcp22.suse.cz> <4a8f667d-c2ae-e3df-00fd-edc01afe19e1@virtuozzo.com> <20180111124629.GA1732@dhcp22.suse.cz> <20180111162947.GG1732@dhcp22.suse.cz> <560a77b5-02d7-cbae-35f3-0b20a1c384c2@virtuozzo.com> <20180112122405.GK1732@dhcp22.suse.cz> From: Andrey Ryabinin Message-ID: Date: Mon, 15 Jan 2018 15:29:21 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR0102CA0018.eurprd01.prod.exchangelabs.com (2603:10a6:7:14::31) To AM4PR08MB2820.eurprd08.prod.outlook.com (2603:10a6:205:d::26) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: dd1291e7-dea8-4edd-d27b-08d55c1393dc X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4604075)(2017052603307)(7153060)(7193020);SRVR:AM4PR08MB2820; X-Microsoft-Exchange-Diagnostics: 1;AM4PR08MB2820;3:JFgK+QGEHyL6JO99ESkw5JQsSrMmio9QV5KAlDid5ISPAqnufQoVE3GVbrsuVvC0BFdn39slc30ibl/DJdzvTLgyy1OFvnxc+PWk8mT6JIoh1azP+EB/mm93BnBiyA2SkOySBG9D87EHqqMi3I2oD36jQZIsUT2R8+ca6rUsqEkkZQaI/IcxfR1+1YZGwGBDbS+JXRMYywvQfhZi47UVxA3N/Th2XOS8OvKZECWzqryyrEfsYHasz5XB+D0SS0QY;25:bbTdtwpB3GCE8gI6StDLR/mNU9TYkk0HQVCvbYFy8Y/9QKSi+RUecT702rw6rQJY53dY6cygl2/PcQ5SWWEq+/FowmafTerabktHaBXdguFKTXd535H3+axIYs23Q3XHHLk/ngPbCfPjGXeizxz0t9uYwVRUDxaoeU8XERsHqKFvLlcysiEq2Q3jjlJyD9O07BEFoVPY6L9IQPLRZr59yQuIQIEW9A05oEq9PXsv0acXMWsG/2z74T5GUR5sFMS5+RfmU8kXkD802y0NZAzoF6k6e9jF3iIEAnk0AvyV1ymdvFxjmStNM49+6nRpZibFnYkuG1th59H+U4dN5MkZRg==;31:EtRirnbX9UacEkusdwogFaVCekpLDLjW6jB7foo24HZOL3a4mKG7Y0UfLQ5v3GM+CCFUHRSBrRnqsh+hhQwu9Uz8beXWsCN/LKPx1P8P3JHwveTbfkSevrUUKq9VlcilYDEVV9d9R8itqS+kx1qQ2jrRAtGSDVxm/Qcj4jBFyZ8zRXWc5sT3QWHFEB2imn6wZkTmJCOGKp+Vdt7aAyX404PrbOP/1Mgc+HQf0ABYaoA= X-MS-TrafficTypeDiagnostic: AM4PR08MB2820: X-Microsoft-Exchange-Diagnostics: 1;AM4PR08MB2820;20:JBSacrfa04wqcenKg2vnh8a0Zvb2SDZaZ52cwu6ZJoaiGISD51uPxwamImWyQRSyG370adMiil4ZgkGptH3jPhqJ0hZmRghCu2+bBg1uMOfuCBGacA7bdUUV0mAIb1Cp7GNjKgKHBJsP2Kst5Wc9jfFvvN3iR5iJLwNcSYNcI6ezWUizYJ1h1ZSBvV9XRAY1ulI3szs8a6z0q89DlCYhUPrjLL9Zdv6dSO7ViMKkYtbd91v+ty2a27udTdio2pnwAg8UzZqdYXodhbrONhcRVYzwDX6yi2khmTTF+MMhf42pyzZ1seecGXYdjPrePK1uuqup/PnK4GDcjdci79hTLnr+UCz0SAM0amrG5Nxh60qIsEgxFQrNLdhTHAOMlIxHHKL5piF7HsAYPjTAayleX6RkahnUBhaSNnV2+BIFXn8=;4:x1nQ5mxD4vaS5h43idUUc2Q3pPRIaOOjBWfTEWuxvRWZZ1iLyHHkldghiGKrjgbHQeki1RfXXC5IVWCQI7w62zqlB8QQFfXJmCDQ5aolFGSbR0bgz3kabK/ixs99zhT4yiX/Zz1RgNEQ0o8NFciSWbKDr105LURNySjnva7eQ3SqkqbQwH7CtscYlEpgnbIRfTYDaCIuB+b1+zBX57BLGUeMwTjkIKOoGOrpDmZvPqTkwvjIaym5STuTyZYXw5gfJaDWdSpzn6ESj7Yt74/Dmw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040470)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(3231023)(944501161)(10201501046)(6041268)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(6072148)(201708071742011);SRVR:AM4PR08MB2820;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:AM4PR08MB2820; X-Forefront-PRVS: 0553CBB77A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6049001)(39380400002)(366004)(39840400004)(376002)(396003)(346002)(189003)(199004)(377424004)(24454002)(4326008)(6246003)(8936002)(47776003)(66066001)(65806001)(105586002)(50466002)(77096006)(81156014)(6486002)(8676002)(6116002)(25786009)(65956001)(81166006)(31686004)(68736007)(2906002)(39060400002)(3846002)(229853002)(478600001)(7736002)(386003)(316002)(36756003)(106356001)(230700001)(59450400001)(86362001)(53546011)(65826007)(58126008)(52146003)(2950100002)(2486003)(6666003)(54906003)(52116002)(23676004)(110136005)(93886005)(76176011)(5660300001)(31696002)(16526018)(97736004)(16576012)(305945005)(53936002)(64126003)(83506002)(34023003)(148693002)(142933001);DIR:OUT;SFP:1102;SCL:1;SRVR:AM4PR08MB2820;H:[172.16.25.12];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTRQUjA4TUIyODIwOzIzOk9pcXZrNzRiQmxwT3U3dWN1cXoyK0RCOStS?= =?utf-8?B?NmJyRFdMWU9xMnpsQXFNaHdIbE12aVdXQjVxNzQ5QXJGRUtDdUFORlhtbGdF?= =?utf-8?B?ekxRTzZNc2gycmRRQVMyQkNuY2s1bkRzVmVzZDBwNzBzaHB2TnN0NXlxMVdm?= =?utf-8?B?Mkp5a2wvaHJ5UHFvaDgrMi9pUEVDSFdhYTUzRkZ5NzN6MzI2VUIyMlM5a1h6?= =?utf-8?B?UytoZjl2RG5BUHFacjQ0L0V6ck9QVUt5dFpoMVRnRmFCOXRXVFJNcGMzejE3?= =?utf-8?B?VElJUW9lelRwa3JLOS9PbkVwN2VycXJmZ0tXWHRaU0t6bDRCQkxFcEZYL1d5?= =?utf-8?B?SnRXdkFhV1dud0d4UGFVdlUzYTMwR0Y3ZFNQTCtrNktYOGxDRzB3SW90K1Z5?= =?utf-8?B?NzNJRnlPb0RER0Vhc1hTYXJpMlVxbC9rbTNrZFc2b0NTdUZhRTFXRzVzdkZ0?= =?utf-8?B?RlRKeDgxdEtyaWFCV0tRZXVXZWdLNjZ6N1ZqTytyWmxocEpMbVk3S2RZRlB4?= =?utf-8?B?cVdSekJtbS92aDJQSlRkSEFCa2NoRVFTWnpneUsxNmZVS1RVWDYzTTlQMXFQ?= =?utf-8?B?WmVVNEZTM1VYSlZwTTFUU1RJUU1mZ2I3aFM1aDgwS1R2Znd6aURxK3ExZDJS?= =?utf-8?B?Qzc1bmkrT0ZDbHZFSHJOMFQ5SjdEcjExU0Z0aE12SGs1Y1pHaHVuVnkrRmFX?= =?utf-8?B?aXZZVS9haU82RVJScGpUSWJvL1lsRjQxRXJMRVBzL2dFc05EQStkVHlsR1ll?= =?utf-8?B?SEgzTVc4TFhRYzRQdHJxNFZtS0JEdkJhVC9jRW8rN1M5YnZRWU9FSkRXbXo1?= =?utf-8?B?MlRFQWEzRHdSb3orOGMwMFBCK3Z0UEUwRWdYUi9mR2tzRGY2Q3Q1RmNpSjNy?= =?utf-8?B?NytnWlBuVGhJd1c2cVM1a3BZbE5zUnF4NjVpNEhnaGdoQUpNNGdEbjNWUytO?= =?utf-8?B?RnhwK0IrME15bUpSK3YvTFk5cGV6dm9ERTJmc0p5bmJZSERQVnB5b0JtaUxP?= =?utf-8?B?bWpwZ0hGOTAxbDl1WkpjMW15empIaXRLUm9nenpwYjMxd1BTL0pweTd2MFBP?= =?utf-8?B?amNCMDYwWlRXeU5QMDRqTUpmWmtvOEtrN0lOZzhOYkU3Q1U0MTV3UUVQR0tM?= =?utf-8?B?bk1McDAwSDh6OS9IenZ2MHd4UUhNVllkRDhFcTdmSmVXTDZYQk1ETklrQWhG?= =?utf-8?B?bVVod040MTBCZVhpSzllNHNXTGdxTFlET3RXcG5lNUZOWE55Nm5sRDZKWkNs?= =?utf-8?B?dm0zRXJzV0RqTDB5cC9NekxQQWlzWXZ6RE9NNUJlaHFGZXZTbkRGNGYzVEdw?= =?utf-8?B?eVRyZ0o4b1BQT1lDVVc2QldZQjlKbEhsbFpTeWdSbU1IekVaWmVQemx3R0pj?= =?utf-8?B?eWh4aW05TVd2Nks2STJyOGNIbG85OHF6V1E4S2Qza2FuS2FBanZKUkdmdHIr?= =?utf-8?B?MUE2OEVHVnRyQWdmUkhMVmdKVEFKOGxRcktZb0RRTnI1YnRaZlpxMEkrTWQ3?= =?utf-8?B?R0lPV2p2akRjRWlrTTQ3N1RrWXZrdXRwTGNVbWVoK3B4Z29QVjc2MGFyY1BG?= =?utf-8?B?dXkxL3JkYUlqemxnSW1ITzZ2eHM5SVQwdjdlbkRjbXlaTkxuZWlGWVJPa1Zj?= =?utf-8?B?SGgxS1RsQUVQa3RDa25QODB4NW1PYWFYV25IS2EwSW5jNXlPN29FSjJCeEg3?= =?utf-8?B?NUp5RUJaN3h6eFBuU0QwSHlPMFpQcEZaUWZsNENidXA0N2lvSHRDSjVjbGtw?= =?utf-8?B?RFZIUHFHNE5xNkR2ditlREdBaE1STUhSbXk3R0lBWmJ1RXJEczU2d3M3dmNP?= =?utf-8?B?RGJNU09UcGU2ZjF6dWdrRTY4SElqZmgzaTZ6cEQrRktxNlpUeG5rSHFDbkdn?= =?utf-8?B?ejNBMHRITWxneS9wMTkwZkdqakFwYUM2dWwxbTZCcmg4Y0s4dGRJSzZXbGo4?= =?utf-8?B?bnBFSGJWVm53UXcvcVFnQ2xkaTkxZkhtUXRHWkVLc3oxVkNvNU92Q0M0Qk12?= =?utf-8?B?YzZPTWlSV21xRHNFRTVqcmtaZFJGS1FDSHZrOGk2c0xmWEl0WmhWL3JZRUh6?= =?utf-8?Q?0tCh1bNuw5wjsehk+FWqZBvJ1?= X-Microsoft-Exchange-Diagnostics: 1;AM4PR08MB2820;6:aywdG6JiZqYA4SBgW2U/aDSG9qPt55ne6vAfFUEjzRuaI+wl7LIgePk8dqQ2v0fuYOodAApy9aLmgPA+nqsckUQuom9Xn/RyZgi47rOndsEafyYGtzFZYk5pwjd/9KehlLwn2vOCo10TVe/Tkot8LXFPp1R7KWYIYywg93DJtys1eusZQHc5o8oTvLnb3jx5SV9enCVj5TTTm1WJYlVz1nL9C9AZaprJGznXKx3c2QjlBxZTXINp+JJrPqKEaoUVvZca2v2351hNaTqvAw/y/h1j2et8mf4EVmDYoY4HLx5SjQQWbBqD34wb8UZkYzMkVKIEvfFuLP1uWGMCDJpmJo60Hg0lyTAwyTTebArYD5U=;5:7YNz7NVuiMDyawwcnnm3bnLLtgGiZskXKjU83K8zqF4WBAPJiLm3jMoXCL+s0DJxPElPl36+VdmsCQlsRF7bdO/7YI9nOwJTJwTFAeIj+b6KPpchP27px1t+LobJSLDD6BVNRbOBp32skKidiaFHdJE1EHZIIHB+BiaxAnGhvH4=;24:2AYaeY9W6SGpjkczXWfhm2Mp3TVg5fPhCEQWW7WSf6GiI+MSUVJoppRFotFePdMve2LM/pYprZ/uQKeFu5DWmQOYedNxGKuTi24mmdiF7sQ=;7:oSAmouxspbsWw87xfIl5cBpIBt1zkNQ82s6hO6RyWpv3MPKMBzZvoCorb9xZVTWL2ki0To6tRXqAU8/fAdQQ6vjidlUT7k2e2iDRNHAJ22P2hdBC/m01CdZA6B5WBitBtv3dhUtWfXxP0MyHeG+LZOcU1ej9jIidx1h1Pp5GCePecloeCuWj8zP/suNPrzeTnaOWJ7eyT3y4LJM1mRW1pKLjNaN1wEMlm+3RT8OlWSQ26+EGqXLxGoKamNyfkh4/ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM4PR08MB2820;20:3cJFpRmnGuqYCDwSNDVQD92B9b60v1LQm16dPOt83awcywt1ddXVEQP16NaZw6zbjvGeKkFMEiFXDNuXRE15iNHQ5qe/coGVLaMQoPG34DHI0kn2IhlTlIXqsg/6POB+pmYxEzEXEDJBEEDo+IMQ3uqqpzNwsPAiwkWHTcw4MPU= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2018 12:29:09.1868 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dd1291e7-dea8-4edd-d27b-08d55c1393dc X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR08MB2820 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On 01/13/2018 01:57 AM, Shakeel Butt wrote: > On Fri, Jan 12, 2018 at 4:24 AM, Michal Hocko wrote: >> On Fri 12-01-18 00:59:38, Andrey Ryabinin wrote: >>> On 01/11/2018 07:29 PM, Michal Hocko wrote: >> [...] >>>> I do not think so. Consider that this reclaim races with other >>>> reclaimers. Now you are reclaiming a large chunk so you might end up >>>> reclaiming more than necessary. SWAP_CLUSTER_MAX would reduce the over >>>> reclaim to be negligible. >>>> >>> >>> I did consider this. And I think, I already explained that sort of race in previous email. >>> Whether "Task B" is really a task in cgroup or it's actually a bunch of reclaimers, >>> doesn't matter. That doesn't change anything. >> >> I would _really_ prefer two patches here. The first one removing the >> hard coded reclaim count. That thing is just dubious at best. If you >> _really_ think that the higher reclaim target is meaningfull then make >> it a separate patch. I am not conviced but I will not nack it it either. >> But it will make our life much easier if my over reclaim concern is >> right and we will need to revert it. Conceptually those two changes are >> independent anywa. >> > > Personally I feel that the cgroup-v2 semantics are much cleaner for > setting limit. There is no race with the allocators in the memcg, > though oom-killer can be triggered. For cgroup-v1, the user does not > expect OOM killer and EBUSY is expected on unsuccessful reclaim. How > about we do something similar here and make sure oom killer can not be > triggered for the given memcg? > > // pseudo code > disable_oom(memcg) > old = xchg(&memcg->memory.limit, requested_limit) > > reclaim memory until usage gets below new limit or retries are exhausted > > if (unsuccessful) { > reset_limit(memcg, old) > ret = EBUSY > } else > ret = 0; > enable_oom(memcg) > > This way there is no race with the allocators and oom killer will not > be triggered. The processes in the memcg can suffer but that should be > within the expectation of the user. One disclaimer though, disabling > oom for memcg needs more thought. That's might be worse. If limit is too low, all allocations (except __GFP_NOFAIL of course) will start failing. And the kernel not always careful enough in -ENOMEM handling. Also, it's not much different from oom killing everything, the end result is almost the same - nothing will work in that cgroup. > Shakeel >