From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roman Gushchin Subject: Re: [PATCH] mm/shmem: set default tmpfs size according to memcg limit Date: Fri, 17 Nov 2017 15:55:16 +0000 Message-ID: <20171117155509.GA920@castle> References: <1510888199-5886-1-git-send-email-laoar.shao@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=date : from : to : cc : subject : message-id : references : mime-version : content-type : in-reply-to; s=facebook; bh=BWTdkExsIfW5OXX7ejrEsjveBvzIvfYW4WKn3itSu60=; b=Ph3ov8kJHEqxv3gHaQNW7lzqmLCruD4UNnP10YkgZMjrd4dU0eY5lpoQvnUUffC8nQFe VQsMGodO3fKPqfeUY2XrRTrT3j4E344BsKqQwt8ezr/HB2iZ9/PTZsSf4Gze6Rsxf0gG mXfjoobxASbwrRdalUlEomcFpVqwsrVoCps= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=BWTdkExsIfW5OXX7ejrEsjveBvzIvfYW4WKn3itSu60=; b=dMkXx7UOFFUjw5APUdbneaS5irH/P16HowuexDNqBx0xhzgQyHvX+8ZG+O21zAdLrDg9vePUfM6MGL/Fl/1pAgbtVd8gwYQ4elPUW+Mx8bmhbRumrmfDPaXYoFVXWchJ8lenipm04kdeA7Q0cxaxm/TwyjWF/RwANHXXEjZlpMQ= Content-Disposition: inline In-Reply-To: Sender: owner-linux-mm@kvack.org List-ID: Content-Transfer-Encoding: 7bit To: Shakeel Butt Cc: Yafang Shao , Andrew Morton , Johannes Weiner , Vladimir Davydov , Michal Hocko , Tejun Heo , khlebnikov@yandex-team.ru, mka@chromium.org, Hugh Dickins , Cgroups , Linux MM , LKML On Thu, Nov 16, 2017 at 08:43:17PM -0800, Shakeel Butt wrote: > On Thu, Nov 16, 2017 at 7:09 PM, Yafang Shao wrote: > > Currently the default tmpfs size is totalram_pages / 2 if mount tmpfs > > without "-o size=XXX". > > When we mount tmpfs in a container(i.e. docker), it is also > > totalram_pages / 2 regardless of the memory limit on this container. > > That may easily cause OOM if tmpfs occupied too much memory when swap is > > off. > > So when we mount tmpfs in a memcg, the default size should be limited by > > the memcg memory.limit. > > > > The pages of the tmpfs files are charged to the memcg of allocators > which can be in memcg different from the memcg in which the mount > operation happened. So, tying the size of a tmpfs mount where it was > mounted does not make much sense. Also, memory limit is adjustable, and using a particular limit value at a moment of tmpfs mounting doesn't provide any warranties further. Is there a reason why the userspace app which is mounting tmpfs can't set the size based on memory.limit? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965397AbdKQP4S (ORCPT ); Fri, 17 Nov 2017 10:56:18 -0500 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:44070 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751062AbdKQP4H (ORCPT ); Fri, 17 Nov 2017 10:56:07 -0500 Date: Fri, 17 Nov 2017 15:55:16 +0000 From: Roman Gushchin To: Shakeel Butt CC: Yafang Shao , Andrew Morton , Johannes Weiner , Vladimir Davydov , Michal Hocko , Tejun Heo , , , Hugh Dickins , Cgroups , Linux MM , LKML Subject: Re: [PATCH] mm/shmem: set default tmpfs size according to memcg limit Message-ID: <20171117155509.GA920@castle> References: <1510888199-5886-1-git-send-email-laoar.shao@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.1 (2017-09-22) X-Originating-IP: [2620:10d:c092:200::1:e1fd] X-ClientProxiedBy: VI1PR0101CA0072.eurprd01.prod.exchangelabs.com (2603:10a6:800:1f::40) To BL2PR15MB1074.namprd15.prod.outlook.com (2603:10b6:201:17::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 768989ce-fe8c-489c-cbc4-08d52dd3a0d6 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603199);SRVR:BL2PR15MB1074; X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB1074;3:UXb3gwKC4+Qw2FIpVgKu63EnmBBYX/GThdmrlfpuaC7s0tDzaeONaRrxPoxFItM4L0SVZqPUMN6t69kuov2mymtTps29mxZhOIDA7E2BjwlSEmXJjvVGkDBpzxYYSzUVe6b++l2kiTlHRWhcBBTWE9qWSY+4ORrPNP5Aak2Mj70vmO71IeUqtSyJsUer6lA6WHwoobQfx62SbFkjjY4rZwCdLSbSMLBVfKxvTPtfbuhobrxa2K2ZOlxC6qxSsh8q;25:JZG4zks5hTmH/8VouuPv4RxleNYQ2qkOwdQZmVhr0LB3y92CuZE2VnAkfGnogQl5uyKX3Vk+twcFHSr9JHlVwdrLWQpaiPdcE31TxTTwnj62FVzEkHzcMe3pHAAj+WGCHv+SmwjEthT37cp2j8qwXBztuEbTJYiBBuWJY8ZNxV+fcBpHOmgaNa7FcZJ6VAIFXJhMN6h8WPTL10obY+UF2Y8tN/PWVwQ4vGEjROqbcW4PBVCIq3Scvk/9xgrJOzV23yYeYMPHekR950TWjrPuLKx7bzQdljeiRm+Ma2Q5opWf61SCclRFyTGsPL3ED1xqHsz3sHH4NB6v+N/AW7xs3A==;31:uwjbCtuSR45UjX4i4LRlh1Wly5PkrRVqE0ytcQozNx5nNQOrag5EDHBpasNz7UXTNatnC28IhapjyRGugw/MbuXRo3+U4vW2MDmHYKQkPsriEOAscWMllOsgcQNfRmBqhMiDP7HBvwBIoCTN3/Qsjy9seS+FSgxYbWHskuT8lAv3aK7ptVai7gr1fuYDhomescqvt/r0L1eK+vFNrHaC9xq1yyL6xjzQSIWtAee0q+M= X-MS-TrafficTypeDiagnostic: BL2PR15MB1074: X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB1074;20:Oujscvjg0OPhrqqSZKGPgGTRo54ZXpO6W3zqE5PYWT/FxxjGghelVHAoJZ6cDndrQzefqbA0Rw8y6+IKtXlkqY8unVtzbGNhYd0iwL7oQu3NJgjFplJPLlpypNRo5RzAEwHzLstK+Y6f+SvyKpv4pZqZ+6GO58RUChyBZ17fxpG7ujugAzAyIKp2W3wO7ceMHKt2bWFl5v1WnSVcfH5Qqu0deij5bv7ZI8PHid9n60QWSWn90UOn4hr8Z5DEgSCmRuKj5OmTtJPiL6yO/snYVXCCYNExaxSecx5am0zccszja6ecgSmyQfZep/zhl2b9lle0/GODZLGpGUQrBrmm/1TIfO6SPIj83NWq2CFoFh4/n8oIe3s+41Wc7LcFlazoZsAzdWBYTq6s7OUpCQSJp+RtQxov5S8Y+JHHMaquU7/k3WvJ8mzbVztID0FH79QzNk0AiftBxfyRpA9/9Q6Su6zZTrO0yNCBDVQa5cE4uw+TOp7s3QhyAQPSkKHjm+Oe;4:gDqLfvH7mdBFEEnZfBeuQ3IWhY04VHrXc+R3DTRJ2WkYCOkqVSG+1q/8CJWXFhT2Rutt2bXKn9Y28DmOLg1lTysX7KoncIak+KN2QMqFZ0iEUZG9aQFqoBe6MSnYueoZm8ZBT39rWR6N4WJ3sUywPyjnH6oKC8Oek0SARMf9mMNdVzjIM9t4vHD7npboyBbwWLFK4tvyJ8VvHHVM11qjrBpySpLrztM95F5H2hvNsJYpFa/azo1oPJGMXcyXAF4RUrTFvJeGgbgTozHB5P9UWA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(11241501159)(6040450)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(10201501046)(3231022)(6041248)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123558100)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BL2PR15MB1074;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BL2PR15MB1074; X-Forefront-PRVS: 049486C505 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(376002)(346002)(189002)(24454002)(199003)(83506002)(33656002)(53936002)(6496005)(229853002)(6246003)(55016002)(47776003)(101416001)(50466002)(2906002)(9686003)(106356001)(6916009)(53546010)(305945005)(105586002)(81166006)(189998001)(2950100002)(6666003)(86362001)(1076002)(8936002)(23726003)(8676002)(81156014)(4326008)(5660300001)(33716001)(7416002)(6116002)(25786009)(7736002)(76176999)(478600001)(50986999)(97736004)(16586007)(68736007)(54356999)(58126008)(39060400002)(316002)(54906003)(18370500001)(21314002)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:BL2PR15MB1074;H:castle;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BL2PR15MB1074;23:5oOMm9kf4f9c+IG5Sb7gfpQOszMH2wdU+ScIzuIY/?= =?us-ascii?Q?HSc0Pyxo9R3yGDR9wsYrcDj0Lw2+KcpRHWW6Aqk7Fr46OKqtG0iEg+bxPDNf?= =?us-ascii?Q?W03Bla2aZ65XZmme2HFcMKa/RqzNNQnzfmBuNw05abpNd0iK1ZCmKrUwyXny?= =?us-ascii?Q?UJH3mouPTLyXbDVI3s17NueE1CSX1/a5DOj1hHDYPEVfzfXZWND2QhCj4VKl?= =?us-ascii?Q?6WhBa0RXWWyXTxou6SUzVUeXdCmlsPR6cS2NuNVfL1KuzXouySAZxEao9kfo?= =?us-ascii?Q?HqtzRmYQW95HvmzIvN0gw1y3dc0y66PA1J0KP5Ar1EWW9V3agDWlSx+Idyrc?= =?us-ascii?Q?755OAjflUyk4MSBV9EZlgLI1tsrCmKyjLHXPKxY2QjZ8BMYwIpO12JgRUsjz?= =?us-ascii?Q?nccV5PNVZIjeU/XYssM4BwvZCVUAXRsvyRvlTMxKsleln6sWaDGp+TZxuklh?= =?us-ascii?Q?Ea2Joq0CYBNLDRMU7lrGyHKYntq2KQFzXglq57/xKliRoPsKd0PiYT3f2OB2?= =?us-ascii?Q?4S2RKIKosUGhKS5n3eO/jIfhc4keEwh2BwkCU702S92W0MKgWhtRc/i2bzdJ?= =?us-ascii?Q?ZZK8dQmv8MDaKk9KkSPr/67jziJ7E6W8jhv3jUhBMKmnpKVksKdY75MlGs6z?= =?us-ascii?Q?wBjOt49ECgejfdBiuMtjIkpKymvf8MUw2s5/FXBZyc0M0xg2keOusqZsY+gx?= =?us-ascii?Q?+dIeKStFDuN8t2CTvEXZ+ElDgQsDe2zzp6jx2kQiDP2cpZLtEKyCiUwoRkVS?= =?us-ascii?Q?JgJqsPOEOCtF+lO1ARTHQoNH9ytxWFwrDJ9f378n8S2zEiqCx9OEWO9sXHfw?= =?us-ascii?Q?1lg4IqSMpObE3lD0tNbrsPVrlWpbwjfQ7EyCMjg54IcO4RBGdz8ZrXSVeng8?= =?us-ascii?Q?G5KBDhKuX4NzqpGuBihHx4b0Y4vqUM7YQfvChZzDhG8yejjaRNqiAr9XJG5v?= =?us-ascii?Q?Zro/ESLUhL/948yhZtzEdIuvy17LwYwSsFvO3KSnR1p03FeXPdjd1xK/SSlJ?= =?us-ascii?Q?mysz//stqP/2r1sPNen1J7+W5FJrKm5RsNcnE6rxtlR1b1Dh9Zm9h/aVUAGd?= =?us-ascii?Q?lXfN2KuiTHGveFyxKPpaGGVV6+ktz/45T4/zzRlKTZ2WZHNboMQupSDJ/q68?= =?us-ascii?Q?xDVU2GOJLtvSvNQSuQzSFjmRRazEk6lu5APkijqnFaEZqM5lyYb2GXYK6niu?= =?us-ascii?Q?kfjYprLROD72Ux4KNVRTluNsvz5uof7RbmHXzTbFFdal2E8qBXQMtGRZVzIT?= =?us-ascii?Q?F72+fvybr0K2VGKMMo=3D?= X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB1074;6:RNTwY9hcqkcPkBsbBGUvHw1MONoeu0hn0J2So7+ts1tXN+KwHh6fpqL3q4VMa424i6EBGbE0qlFWvme8N6uVFlOhKouB8nknjhnixlO8DYqrxBZ/zagaVRyN8ekjBdbf7MpFrlJp7PIKUoE292ZxY4Y2cP0CkvhmhJHzO7Yg/SLJPMIIku2JYDD9fJfzVFKMaXcXwAq/eUVL0qXh7c8VJk9Tn27bkt02WQgmVU44ADFk3/MmM9k7321UmGwXSjMtH350M6Xi0y5DeesPwMuHnJp/69tvYLONbHfBmnOt+wDIlGi4GKmryzEcrJ8LKBw2Bz1vQGMBo6ixTgk8e91KBnHzlPF5V0kIwxLJaNH3+P0=;5:j/504n5bJAnhz/z6co9kYLPcItbDiWCWYBoUBNtjw9L7XHntbeSM+4JQvJpM5T0FObFtpB1kni0Atf/uHo/WchMtNBK9B3nEIUZK5IYxN+oRGVQFIwPJIWlpuYMiGwvfw5vlYRzbl88+7C1iWNwI9hP4+v0i5Gb+ELZGkWxZ3/4=;24:qGaEY0+qGtdEuFZPStXRbsC/2BCai08Nr0BG8Vtm7lCoxDoQ1fZfMEzIJBzBe2u/LIavRrBs8R4W5uPGircA7WqoxniTCGdUzMB9zDm0RE4=;7:2+A9HyaWGOHyH9gJ66xeCScLgi5CLf1sadwprGmXjdvH+wv1AgVPVcGXtDqSswjO/4CfPTZQQW2wts+I/5tUIHq2w2/i0QyW1sUyE2XG8Vi+bnmjZZtO4LKhsH1VUnddfz4JCW9Vfjw+Jy+Gg+PHeb5gWmHGgrVeevXhEkCbVM4w888dPpzK3pLoN2Lc6rOhVHbY9y0UG6MS6C0SazMETykA2ypCfT0IAj/mxwsjSBKWWewEA3OvYQex4ZkfKcmy SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB1074;20:1BG/0PoY1gBUaU74o3atd0O97wDGOTZf/uflQVOga81tw/mWZ28fBB/7NPReXH/nCqThZV/8SYoYJ/hL92xF1SmsT+TooNJ/xE+Xr8dnLvk44GWxqBXwWQQHQEPp6a0tpOzQOVnH6QVUNLuEAm2kC4Z5Hh+3wp7KYK65AIX+SXw= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2017 15:55:28.2416 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 768989ce-fe8c-489c-cbc4-08d52dd3a0d6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2PR15MB1074 X-OriginatorOrg: fb.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-11-17_04:,, signatures=0 X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Nov 16, 2017 at 08:43:17PM -0800, Shakeel Butt wrote: > On Thu, Nov 16, 2017 at 7:09 PM, Yafang Shao wrote: > > Currently the default tmpfs size is totalram_pages / 2 if mount tmpfs > > without "-o size=XXX". > > When we mount tmpfs in a container(i.e. docker), it is also > > totalram_pages / 2 regardless of the memory limit on this container. > > That may easily cause OOM if tmpfs occupied too much memory when swap is > > off. > > So when we mount tmpfs in a memcg, the default size should be limited by > > the memcg memory.limit. > > > > The pages of the tmpfs files are charged to the memcg of allocators > which can be in memcg different from the memcg in which the mount > operation happened. So, tying the size of a tmpfs mount where it was > mounted does not make much sense. Also, memory limit is adjustable, and using a particular limit value at a moment of tmpfs mounting doesn't provide any warranties further. Is there a reason why the userspace app which is mounting tmpfs can't set the size based on memory.limit?