From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754294AbcEXH4g (ORCPT ); Tue, 24 May 2016 03:56:36 -0400 Received: from mail-db3on0119.outbound.protection.outlook.com ([157.55.234.119]:41119 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754045AbcEXH4e (ORCPT ); Tue, 24 May 2016 03:56:34 -0400 Authentication-Results: linux-foundation.org; dkim=none (message not signed) header.d=none;linux-foundation.org; dmarc=none action=none header.from=virtuozzo.com; Date: Tue, 24 May 2016 10:41:56 +0300 From: Vladimir Davydov To: Andrew Morton CC: "David S. Miller" , Johannes Weiner , Michal Hocko , , , Subject: Re: [PATCH 8/8] af_unix: charge buffers to kmemcg Message-ID: <20160524074156.GG7917@esperanza> References: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: AM5PR0901CA0033.eurprd09.prod.outlook.com (10.164.186.171) To VI1PR08MB0591.eurprd08.prod.outlook.com (10.163.169.21) X-MS-Office365-Filtering-Correlation-Id: d410e247-0cc2-40df-ee0d-08d383a6e5fe X-Microsoft-Exchange-Diagnostics: 1;VI1PR08MB0591;2:6Ma/LgB2yE4kSRdbLneohj+9QfN1tFh0PLdp53bh1eekZm9ehINI30TiVTVWJfPDfozpIqsrGtPCEYZXmGwpFXH2BR42akL169F5utc07HkwNU6bxJHpxmgYU4gRKBZVQAfA2JuGn55J89GDqo7+dbN34Bd+Ofb0Q7PX5CVp/WHTQRM0jyuZPoS6HoAeoZE8;3:bXbHm5XXV+c2xSqCnC0oa+y+Qd/kbaImsMQ9l4kjZCarvRFLcS+l6lDUzM8LPvPjzePxwj6r1l6NXYxPtG4GxHZqISDQf5FFR/iyxDugGW9sDhOZJM35j2z/Z6hZ1GmU;25:weC00dvgMUhxtC4wUej8H8j2yL4NX7TYrjI60FCHi3fIk91Nattvtxyq+MNgp+fU9tBbZr977IyYigjpmHe7PPejXerKuRz+ckl7kuJ/VKj6EAKBONJ6RnT9k85iwYBVBihn7qb7N5mQWWb2OSl93OsuKgVW09C0cg/TaCTDnXJ7dycipLNcWvtZ/ZGfUSV9c/bx6kV5y4T9NjuK9BleWLsQsDuJlC7a2EWSlu24lNdgbMOrso1n3ygxn346COwBWt67IvwWGvtImzpToZvDr6+FrJX/I6fGBEiJyAeLUugBgTDhjOo+yfRCWN6m5Q4rsXgTSZ/P03TJG7sz95EVAKU2skzb4X5ls0fMy2blG8qZw5FzfsFlhJN86xm5VohNASbLgoQ3bu1xDPMFPvuWwcp10F7ithAjydnn4IPA6CI= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR08MB0591; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041072)(6043046);SRVR:VI1PR08MB0591;BCL:0;PCL:0;RULEID:;SRVR:VI1PR08MB0591; X-Microsoft-Exchange-Diagnostics: 1;VI1PR08MB0591;4:Dm0Yc5ZsOqEI6ecmNJvQpwF17WovgeF1dWKCRCKQTEK/CjJ+RZLDCRnE3N58vx2PTxdNYLnn/M02kJKefCH0D/sI/WPQMBthvTDl0ljo0Ndo42qLgUyACOQ7hPRLyMbop8pqdwWeLT2UcCBnytUjrWCqPdnrvlT5aeLkms5RCERJuJiXTh0osxbaW2B7hkQjHXjoydNtdVsOm3RgO7wjtUJMzxalycvwB8dCtG8ln+tEHB+EcZ5zIo5vLGpMA7ke7BHPrTu+Ie82pJL4/qJt7fYkJ0lmGscFiNvwXVRvGghrl9oqXpjGbC5pJfKzyX/VSJpz8aCpON3G6ShGF6o0Bwf/DwSxxF7VE22Sxc8NvJ7+SxsfHpSw/YKmPWdP9DbWHYiAmeB29wNAAG6wR9Y68ZQfgUvYqTddu8d69ie+z8Q= X-Forefront-PRVS: 09525C61DB X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(24454002)(110136002)(2906002)(86362001)(4326007)(189998001)(80792005)(50466002)(8676002)(33656002)(586003)(3846002)(33716001)(6116002)(46406003)(1076002)(97756001)(23726003)(66066001)(50986999)(76176999)(19580405001)(19580395003)(54356999)(5008740100001)(81166006)(9686002)(77096005)(92566002)(2950100001)(47776003)(42186005)(5004730100002);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR08MB0591;H:esperanza;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;VI1PR08MB0591;23:cbCKCMDMDLWkMCdnIRMPfLfNg7RNrYwkuEmtIS4odOM9nXAi9tyykfho/ChoEVZLWLQXOjC8EnXXfunuG6GrF9W/jvGcDTsHKbzxECO4maEkVxD/JUSKlyk2BT8aipWHYtqzv2WaTlYanorUf7WfikKngIUTi7+Uv9Jse5AmKEC5X5cXMvJSwcON40X7NDbVZADFETj9OnZFUCFFu8IbHHoLp5xjDpbIuqa+HK0vChub4VqGGS43CB8EOpuz/ntZ/2Dmsjs9cvjqcSgX3etrep/fUp7TaWlp+W569OxqYQDlkmZfkuX3Fcnjyr6RmbR5nJhYdEBim8ldBsUe+OMAhAFio7MH4s2VMQwIVoUoHUFEZji2cqouU3Q2nqB0OI1DJhNpwsFplawTIGPS6db7cNwzmvZaWUqqOaVMpmdYLrAfWzo0DtbAR300bNM/+8YNlUo3xhr9CQnItoLMYjGRfdUyBa5MKobRgHKbkZq46ngetjRH5ywltpGLLIsHoRT4F8Tg6rHfmwXmHEvN1sQC49aSl7zlQ6PrnjYwdp2qG+v+3/t27a9VQrB34FBoT1MxDJxQNY1d4VtvQagvPpxMkBfTXPYnux03K1Gu4oBIwXvKcw3TxAjxaSh4Y6eSzI3oR3COIVYgGTzsVIrXwZJkDqb4xOse/5bcfX6cMPX8nW30KHSil2bM8Z6la1grPLFWoVvZzUUYR+4ih2rJOZBpXuHO9NSMv+tgQWykeS25HSy7QZKLSxpzLn8GVPEPd+2AIN2v1WvpoH0rI1lO3Mvs1v5Gn5mEnU58n0MdQBlZv/RT6vJrBJ8/JoGOb+m+JQNTq2E1BbiXURBVqSz/4/wNR7rBFUpFCahRGx/dBspQIqqRRb73vIXOMY8SaS2bRwlc90tdhIPSyBX7ylFCjFjQkBGH26JbmnpEWchu7D2/vi8xnsE4PIreM3w7H9oc+4yo X-Microsoft-Exchange-Diagnostics: 1;VI1PR08MB0591;5:1Kfl4oRDOun+/0UAt66gyTYJjJYKEdHxyYcg/0WORgn5/GGEBXEiX+wzK7LKKUXe4e/h7JSfQWrqLKTpRvlE8jS4CHuMZQ1iRTkb7S0Ddq5PenGJXMIItzU2mYrp5L5yzVWFl3bw6hmNC8Fx6YZxhw==;24:0ol8j3vUzbueoo6qfs1KNzQHEsU5A6xtfYTjpjxU6gsvZ9/rnOY7UWWe6YV3DPDPfBsumiIkawAcuiVzyfQ11OcKsucSIBx7Oo0vu+TymSk=;7:jQxGQTJMumDzR/ksNtJRi1Hnm55NqH8cR7rNB036W7nJOYHoZgDaLQXOHFFxKs+TtQkq0Rap7cev/ZwkRSr3G192YQKCDH/cIlmx7b2KeuvoZ311hO6pMZy1ySSH4IOp015+l4LN3NSUIQJFN+5UhsLZ9X6iK0i4qGGquBY90jdwkbBvH6GF8pEnro1Ctt+c;20:lCZttJoBjkFuIg8RiXep+vP7QkQ4PEWYD5LDhBovtaAIvExMiBd3wTpbNUHV85Kgn6/QMXN6EqTP5G7pTBHgfW3ztv+kixq/2gD8sU5pxOhMq5CuPT47WYTprUL31or8EuwP0j9PonfAEDikTGuvmqUfZhfzQ+S+sejLRAaZLNc= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2016 07:42:02.6652 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB0591 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [adding netdev to Cc] On Mon, May 23, 2016 at 01:20:29PM +0300, Vladimir Davydov wrote: > Unix sockets can consume a significant amount of system memory, hence > they should be accounted to kmemcg. > > Since unix socket buffers are always allocated from process context, > all we need to do to charge them to kmemcg is set __GFP_ACCOUNT in > sock->sk_allocation mask. > > Signed-off-by: Vladimir Davydov > Cc: "David S. Miller" > --- > net/unix/af_unix.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c > index 80aa6a3e6817..022bdd3ab7d9 100644 > --- a/net/unix/af_unix.c > +++ b/net/unix/af_unix.c > @@ -769,6 +769,7 @@ static struct sock *unix_create1(struct net *net, struct socket *sock, int kern) > lockdep_set_class(&sk->sk_receive_queue.lock, > &af_unix_sk_receive_queue_lock_key); > > + sk->sk_allocation = GFP_KERNEL_ACCOUNT; > sk->sk_write_space = unix_write_space; > sk->sk_max_ack_backlog = net->unx.sysctl_max_dgram_qlen; > sk->sk_destruct = unix_sock_destructor;