From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932572AbcHCOaL (ORCPT ); Wed, 3 Aug 2016 10:30:11 -0400 Received: from mail-db5eur01on0134.outbound.protection.outlook.com ([104.47.2.134]:20676 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932315AbcHCOaG (ORCPT ); Wed, 3 Aug 2016 10:30:06 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=VDavydov@virtuozzo.com; Date: Wed, 3 Aug 2016 12:50:49 +0300 From: Vladimir Davydov To: Michal Hocko CC: Andrew Morton , , Johannes Weiner , , Subject: Re: [PATCH v2 1/3] mm: memcontrol: fix swap counter leak on swapout from offline cgroup Message-ID: <20160803095049.GG13263@esperanza> References: <20160802160025.GB28900@dhcp22.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20160802160025.GB28900@dhcp22.suse.cz> X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: DB5PR10CA0030.EURPRD10.PROD.OUTLOOK.COM (10.165.4.168) To DB6PR0801MB1864.eurprd08.prod.outlook.com (10.168.85.10) X-MS-Office365-Filtering-Correlation-Id: 71635a3a-88e1-465f-aa97-08d3bb83a9a5 X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1864;2:EduZHOjNjhQzPwYs/Fxkhq7/cr7GjTVZgRSvr56EnrGI+seZFXQl5rwYtjMBHwUmXJGwMIT7a/0k0iMLwjoQEsu9IAo240iRXt8+y9HnH86G8OelVSzkIg+PO77vzoTtnbwDrtkEmUuqWlmnxQ9UmkYScPQZ476x/cqiJ1bgfKnqon6jQXv+35frIk7LvFru;3:9e/QAq6W+yFScUXEjNmJm0YqAnJzls83nkY1qZRrBLWX/lKLt8mjb9oqeGjgfEwFEWqs9o8c8+wswsE2qtOYnYBtJQj6YIMeHIrOQtYsXiD/HmONEY9S8wV1jAC9nFUU;25:oCNTVAkaQUcc6kViNSEmuLN7/36cHm7KKeGZI36r5WpAoAVHcqgjqxfCO5zF/hKKYn4M7kx5CDPiB9XS+kL6rDHAU1D9xkBUtB8RFESHH5YtWtK35MX14mB2KCfbZyIzb/lzZ393Xv7lYN+0coSxV6d2rgEqaDLf7eGWxKqpURaVym2cY9yXY/fL5P2pNejBWkd1bEpfGigSJzZ7XCVjIdYyMB2nHZ5CbwUykj+lTUGFQ0yvRlAd+bpY/Snj3NvD34JH9/0cDcAdaNTKw2hU9Qiqq1LBGIhH30qrdLlKrJsP/Olb7yqRUpSTK7GSkQu1wwbEx+Sxioq5k9c7BlZvTYiTTu73FscVg4iJ7jbhkQaPGhws5LD3jiv3uBP6E/pmN78q8nSqQVyJ7V/LeRSFEA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1864; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1864;31:EJXlsUEyw7JNT7nhkf+Zi5hs+vr7W5r1rJ2oLylQaP32TfT/e79aLKBikseIW1VBdJzj9BLL0zGKv+//eM+7kV62hHkp8TYQVl9E39Xdgj3JktCIl4Uf45kYGrESKjqDCNW3Egd1K8/8F+M8pfA/keoJKI+uCpNgnUbG2Apo3ZpqmApx2M0ANAfWg5HcgZWkiqlu3hyle6+ygZR1dvd8pC1IP5hs6ecj4IH/M44PCYI=;4:XSURnZR/IY+eK0ZOm2KpZk4tv4CEP4YWHovvqFI0kHpjvLj1Zl6NA5p4i9ErmV9s1azdX5LNEbGDxhuUBekKGoZyDeEQ4Kw9SJmVjUC1hL3fm8HIW5kdGG3H9ragHPtgD4KUqQ11SDhfs3/ZPIb4fsa/kpzNflJ2lvTub7T8rxNx0l4YX7gtZpTEUbhEajsCYSoL1c/RovEkwmjWsaS+D0AmKYGiyJmp0DflZwz5+Rb9tAafJz8jc72kpqP8z761wpd/3H6uEjE2jYVweDmfD8lQLYp/ACyr9dmDGkjaFOEVHNFGXrZmpxbEuIJMQ1udx/x+t3HKk5FYYNQUCABxaSnPaMG6WyQxMN14s34QHn72s+snl4R8pYBpZFi5O+Hiimu9RxnjC39YI/tY5oQx2SHboz+vT1GZt7b0NhfqhwA= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041072)(6043046);SRVR:DB6PR0801MB1864;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1864; X-Forefront-PRVS: 00235A1EEF X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(377424004)(189002)(199003)(24454002)(110136002)(2906002)(54356999)(33656002)(9686002)(76176999)(19580395003)(97756001)(3846002)(8676002)(6116002)(189998001)(68736007)(81166006)(81156014)(50986999)(4326007)(101416001)(106356001)(42186005)(46406003)(305945005)(7736002)(7846002)(50466002)(1076002)(47776003)(92566002)(23726003)(80792005)(86362001)(2950100001)(66066001)(77096005)(105586002)(33716001)(586003)(97736004);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0801MB1864;H:esperanza;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DB6PR0801MB1864;23:sXUk8cdl+X6E9jA3dsK6xiU6G/KibiTPzzAGhma?= =?us-ascii?Q?PQRfBL7Km9Va+bwjOZDC5fD64Hn9PA239cJf0JTdfNMDqa0RldVHBBQHbTVq?= =?us-ascii?Q?BkcGHzDnz046AzFpz69ZD7xsYRXNLIS2xbXFfIbEMB0HBE59Hl9t/+tcBsri?= =?us-ascii?Q?hFqyqnoz2Qd/n1sorsxQayx/znl377RZTnuTAgc2GUoqAgQHxHatO88qUAdS?= =?us-ascii?Q?mTe38M6w4QT6WMLs5G4HWfvMwJSqjhh5mUrBw9j5u2SDJNM2gPEljtNhHCH3?= =?us-ascii?Q?fMftSZ0+ACcgPIMmsV0jddqAF4jgkWDfyw1vhYXCn7tDzpkckU5hLjFuAzzP?= =?us-ascii?Q?/OydtptXnHRy7ZbibQNAyavsSe7dLxFkUuvkKZLr3cvmBVa7W3a34VEUB+q5?= =?us-ascii?Q?V0GVGO0N0mFxlyODqKKPEKVnnC9HKHGGFzcB8ueovudViurTsTYT0pgIddu5?= =?us-ascii?Q?Y8SGx7XlTJpJ30+OEa6yTLpaCI3armxTA4anUhr8HEFHNqr0NCf7sIvp3p5S?= =?us-ascii?Q?CFq9EwRfVPj5hJGpESOxv9NNM+M59OPcIjZziz1VLvBRaooCW3XgeOiI8Ssa?= =?us-ascii?Q?PdwR4Bn+WSCpZY8cUYt/ADveci8blZo08oqQr+Tqbs9izhJy6X6RWfT3GsYU?= =?us-ascii?Q?33F/EaV0THdlJKuJDfgYYh5xMCzg3Ja2lzNITrft/O0qasiq3xmM6kB5DHDj?= =?us-ascii?Q?67yADT8hSd/ArYAgNzMPvJ7PVekEyINXjA4p+O2fg1jiNa+xW9jdF5ChlyYQ?= =?us-ascii?Q?QKVoMGqf0wKwng+jPoamjj6d6pPoBS//ka0tDIlK7seOKkJlZW1uH1U9ZABB?= =?us-ascii?Q?wBS2X1SVy7+8zN8baIcbJYQ8yRQLxaGzTrPLGrZo9DWOvIk73pcPamorULiY?= =?us-ascii?Q?A9O5/EROlc+v2TVUPPChEfRXsS78gm2wSgxFvIe744EgGgES6I754fcPfmYl?= =?us-ascii?Q?CTeRmiSbIAP7VOO7N9wfia6e5Qps2WSigL76cxA6a8JS4SnFtni/rlSnC54H?= =?us-ascii?Q?Pp/OrL5Mn+nc1ImAIYuktr79Wb8ynXCLyLGJZT6I+GSoH9plWqRThBqWHJEV?= =?us-ascii?Q?76ogaKBSjIuAWOwc4bo0X1HViOFoUgMI8kZI4OyMXLdeMCMDOW/Su6ba7tWM?= =?us-ascii?Q?21++VwxAlJOo=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1864;6:1hmhYPCv+2cx+ALJFnDOlxLCHRsfj/KF/VD7XUeOzRJiP/v/+mzdk7xNFFVUXD9QIW5N2nnuz2lDtJHtKdN/jUEqvtjF6rI6PUZEumASr6DHt/BgePw05YF9E3XEiClEPwHd8JjorGKM3mcjO0A+Uv4ab2yAL06lgZKwfK5wPj+53zOXTzjv1AjrGQHqTs3G3FPJ8jQUSrUglAtfMltDYcvRyBjl0v3jfvK/lpyzKWcm5i1C279kKuUTUnclIwMp9e0pRQ929pyfxh+CWlcdVQTqXHmlRcGaa1m/Zn4lpBIFtPn7AenVmsb6/2EZ2DBA;5:mgxdhNwWr6ydz1TGPljw46H6za7nxUZ21mkF84aPrwkWMJPhOCpfzWOCYq/21D29gHl2lKIJG+tuh2xEBZz/0xInwSLGtjAJQ5Cjoqp+9+Vc46oVoevPe0EWcw1x3aP5hX/tQbLMwdbs/0n/mZbgDA==;24:fNdWX9sZIGxDZQliwKIyFIwWLZNwq/MtRIXV19DFWLvys6VSRExRDDtOpG3JQwWKBUIMhFpuMhbZbvQma3fj08GHz445tgGSbofEmu9rqlE=;7:hG61Q3mDuucGol9Z624tiqKEPID4CtKoIkGsInMQxscNYDbrw6L39R8s1c5dljA6m3XhIOyH01uUlJRwcFPm+rc5BTJBslrU3KNFpdRHE5GbPck1b3LafYMsmJLRqk2YuQxgqkcjJ2SEeygl0N+BwSdEuNe+KROAlApkgzn3UnI8AUEDw2FgK/zxD+BavG9buHU+gxt0SRJgXQ4mkUJrjEveQwRyd1wB1a7QllZtcvPfXPhhLzM5uFat3AUElUnn SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1864;20:/cl/O12y7tiFcSUkpK5J4EQ/95UKokaLKgzhh6Ih+CB8qe1fumwnDIEkwh0VOChx0tgmT2DF+046X27l9A/lDcGdWH+c43xeeT7l9qvtPBJg0Ve2Gi3GdNyLX9v2UFiAHmRdKIhqVRuXJQOlQtOv1oElvnWWTkUpNdvjX7nrNjE= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2016 09:50:54.4763 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1864 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 02, 2016 at 06:00:26PM +0200, Michal Hocko wrote: > On Tue 02-08-16 18:00:48, Vladimir Davydov wrote: ... > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > > index 3be791afd372..4ae12effe347 100644 > > --- a/mm/memcontrol.c > > +++ b/mm/memcontrol.c > > @@ -4036,6 +4036,24 @@ static void mem_cgroup_id_get(struct mem_cgroup *memcg) > > atomic_inc(&memcg->id.ref); > > } > > > > +static struct mem_cgroup *mem_cgroup_id_get_active(struct mem_cgroup *memcg) > > +{ > > + while (!atomic_inc_not_zero(&memcg->id.ref)) { > > + /* > > + * The root cgroup cannot be destroyed, so it's refcount must > > + * always be >= 1. > > + */ > > + if (memcg == root_mem_cgroup) { > > + VM_BUG_ON(1); > > + break; > > + } > > why not simply VM_BUG_ON(memcg == root_mem_cgroup)? Because with DEBUG_VM disabled we could wind up looping forever here if the refcount of the root_mem_cgroup got screwed up. On production kernels, it's better to break the loop and carry on closing eyes on diverging counters rather than getting a lockup.