From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752504AbcHAOck (ORCPT ); Mon, 1 Aug 2016 10:32:40 -0400 Received: from mail-db5eur01on0130.outbound.protection.outlook.com ([104.47.2.130]:51659 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751369AbcHAOci (ORCPT ); Mon, 1 Aug 2016 10:32:38 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=VDavydov@virtuozzo.com; Date: Mon, 1 Aug 2016 16:57:57 +0300 From: Vladimir Davydov To: Michal Hocko CC: Andrew Morton , Johannes Weiner , , LKML , Michal Hocko Subject: Re: [PATCH] memcg: put soft limit reclaim out of way if the excess tree is empty Message-ID: <20160801135757.GB19395@esperanza> References: <1470045621-14335-1-git-send-email-mhocko@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1470045621-14335-1-git-send-email-mhocko@kernel.org> X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: HE1PR0801CA0001.eurprd08.prod.outlook.com (10.167.184.11) To AM5PR0801MB1857.eurprd08.prod.outlook.com (10.168.157.14) X-MS-Office365-Filtering-Correlation-Id: 02c1bcd9-050f-48f9-c517-08d3ba13db34 X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1857;2:wMcbbkpYSdah+65jW0KilgwyZUrwJF3rd99BmNukngpCacA9xTF0g+0a+a+yA4CKrz9ZFVooIgVrizR2HJUdDqIobqSPio2mn0Sz+cfm8yqNsQ+7/KoNsgBDLKIVtymY2WSeNIHka6KsehHglVb8Ul7t/MzhNYcq/CQ+iW98fV6xXbFpgBSsEO84oJ0tuK5x;3:Vc0HlaGRYJCCkf1Tp5Ko20+7em5LGn7pLb3Qb0B6HsKss7+zO9mC7UOML+NOAc9POO03kN9JtGnQ3cgm7pW/TSLBvdDldPrcGMYibxICDKEpqmYDrkhgAmwdNvDtCGoR;25:zRZEP459qkpZGF3aiWONLEnlhmec5fVBanDBfPCrz+c/NmIKQvNrKP3LlI4Wiyxo4SdkcfW/vBthqZrC/3O1P4+Ro2e03Ete+dCzEA5eLN0IQ13OTY+q8KUL5P2UbUxbvfjHzbo6AlYbutSrPV17pRL/pgzoJd7+TjASf6S0vH0hiQBkUyOjo8/2n3hwDcfzQRYo8ReiTAd7zO7K2VikmsHToJgwY38Q9iPvyUJZcgSpbSV8bNkqtrXMQjRxaE4f+7afDxPVp/UaCIEX6zNz4LN10vTs2krljwCE7kYV774bQhQosLS+a7ABd2gj6xY4NP46gpMYO7EKOe82EWWDIMkxEPqPgY8OrGJjLCXtxek9wB+z/LoPf6rFugBZlvIn809IYVtqgzhYV5MITrq/Pw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1857; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1857;31:E1JFhHDuR+c16nikaHICeQFsA4VWPlCVaPpcF3ZzEb01qWZQEmduaoXUl09Z3NDbDuoM5oSaPgSuF7qFaJ7FomWnW31jhSGXFanWpG+lz3Xi3PHzPaoKUJonrlc5s3lmAqiTyVhTbKFB9Acyc2sAIxjYiDupq/fjKCqEatPsJ6sVTtTKqmiyucCy5T3qdcN7gmNGgltAKcqyYKAFc3vifkmwrHgjZz7041co2knJoOI=;4:1qlw8kAACKSWVM+0eS4ZFkWNyRmmdhE9OD4TCiQxP1GMRtmX+lqmyKmq1NKbRPNB0UmhWyf00vfMu0qHFFe38hQWd0yiZHaxJZLN6s/v87O9DrwFN95N1aGm9M74pneH7FIRT8TAWtNDtOD/Jbic/VJ9bcm6fB0F3vsLAaFZKOzNoW/G+DFZwT5XeCig9pTDA+dkQM0rFtjvQWBq5QAoUDkjk/Ew407GSXQYiXDobg1WcT9+6BXqaVNvLsPtzZuvYJ4T7n+2zAIhUN1IFOEUVf1SAsswrEgemoPMMEi9YtM3ofCWGlfPe0NXI84BFeaT9uVEpk+c/pCT3oSiJF6wY8PkBmd7ugkYlded7QJ0B0oi5LdZi2wuNKfl9I6HOHhzKDMLuHJtrmvcS1GNCx6nXL/uZb46GP3u7oKytLnHfvs= 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)(10201501046)(3002001)(6041072)(6043046);SRVR:AM5PR0801MB1857;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1857; X-Forefront-PRVS: 0021920B5A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(189002)(24454002)(199003)(305945005)(68736007)(50466002)(7846002)(110136002)(9686002)(7736002)(97756001)(2950100001)(2906002)(4326007)(6116002)(92566002)(33716001)(1076002)(97736004)(586003)(3846002)(23726003)(66066001)(106356001)(33656002)(86362001)(46406003)(189998001)(47776003)(101416001)(50986999)(54356999)(76176999)(105586002)(80792005)(8676002)(77096005)(42186005)(81156014)(81166006);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0801MB1857;H:esperanza;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM5PR0801MB1857;23:2mKmuKd8DuOx+Q6TikzgkBASeXV4y2DKtnOKefX?= =?us-ascii?Q?X65ss4vzAuwwcBq7balIblWh0eItK1/yS9hv88wtkpIt9GDGq9tBA8Xco138?= =?us-ascii?Q?VDJ1eHV9mGevk6dyKiUgMbwFBD18St8NWKrMsShRCrufaUzy5AW2/rRSbYtK?= =?us-ascii?Q?fdVaKLByXxqZoRJF6FLfk7ez7VVM+pnmiBh+gX3eOWWl6E1rY+KrrPGyXpyv?= =?us-ascii?Q?un9SdVlivZBf+rq01LYlv31c7d+iqa5flcARP7cncyBEqO934WoQr3mkVfVm?= =?us-ascii?Q?WNyrskOPEmFB4ZzQmUrBqA3PJn/QSR2Ebz88xBJAgYtTXs6mzSGt+5nIeMmB?= =?us-ascii?Q?xLpQ+pfQl8o6eU0H1FpWY7aTmRTRifcAP5W2CZjTiCZm3XzW/I/mPc5ArHr0?= =?us-ascii?Q?t2eqGEKHhK8fdeBRBnayvrIssuM0NcF1+cEkCZRzmMJfwZBYweoBfnaM/Exe?= =?us-ascii?Q?Cz8Bil1ImbotnY57Ua71VY5ZBy1Dvok2CEoLl3ntdlt6uKRBH/bSYBlx7aws?= =?us-ascii?Q?e4eSupKoK04a+4gzJW1s7dk726LZWUPYvbpfUz7YvB+juFkrx29yRyvLm3HU?= =?us-ascii?Q?qASaMOtCxS11a1Lyv6ohOW1kefFxFdcFLO0Hm8hpzJakk7vb00uukvYV7WKv?= =?us-ascii?Q?8mAxSo9nu6QcDvjCurm/KTuC+Ezb0+F8FHQm3/RXWNn+QZvNAtK/IfLnLHEw?= =?us-ascii?Q?wNjYLkFkDWyh5IeHwcdZN3hnqvb9MHyJPlVsnbyeM9oqDDxfMcIasQpgUcnI?= =?us-ascii?Q?BsqrSc2HU2fVeq2Ze9adhqA8Mt8FzLCvCK3C043yDWd+a6pheIMSHvpoQ0zN?= =?us-ascii?Q?CCPn78EwkKtBsuL9ipGDx1yL9zmJV5qlznLD/OE2Rf9KzCCBXAQ2O94VpEOM?= =?us-ascii?Q?rsWPUkrD4o9ZZmwMiooLDnm9ip08v8JWyteLDFcbnTM5OeGXPGBJKjv5U39b?= =?us-ascii?Q?ylGoJ3eW+1F3myQJmPcHMvzE7DZETMKO7bPKXATlqw7p3QdxQhn7Oxgq7JjR?= =?us-ascii?Q?uxRW+/w/KqzVt1WVSXb51QEe/q8g9IknerSHGiqHBNEpgMCoxzROMEPUI0vD?= =?us-ascii?Q?8LoE29FH8JLkhqpxs7BjpSrzwEpMM?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1857;6:iJ9EHUrUyvJfCI3DgEOEMMP6UEP/AH+iZfyJmwx8JjokkDocS1Zmxy9wWW+E3TGdg/SdjxoJs5Y0QmY6jJRnLqtZQnQWr9vttPM50zR509itqb2yV6NKSj90z/5SERzIwa5/TF6tuEA/WfC2zdnuptNeTPN7SESGJUOtaKmSBZrq35SRjVV47gqCEEN2d7lwVvbsRXDBx9DsFh/dWeORQ9XIa2zEOWivv20vKmWiZrjsSq7VFl/8dazdjOStFzRNhyUPWUVmuoHPEmpG+NQjX1RBrK7vyk2rZf+71H9eiW/eKAPLvIuBllmEPJpeqWRj;5:S5d/3Rm6llojXH0wt18GTEdJeizu4WxHwYnhSWRD7i2ky2hwiOwhF4AUpU+Zi8yBobMc9SUenCUBL2gyLmGIjQ7X8BvyBdQumIYqLr1unSk3eNGZfDYDcR37mkqpNxDtc5/NaU3653+dSQwZnv0aDQ==;24:G/1QvyOHYRKCPSuLSUqWHtbe3b2RGoyN9yvRzOcqPVApzPq5oyV01ixGxZWE2wP7ay4DKk05ThP41yCtFmNqj2B9NXopBv8Yu2QlKp4Mv8s=;7:/RrMJvmS5gdapVoXXM/uMvZ+16lUsd5E0nexs3HsZcC898wsOre+J3nEEwaRdHzx2bk6WGsdG4j2buFraujiZ91id2cFf0dl7sYyUOnWIga0qw+8mNufBDxU0VAW6JxNk90h7bIWStyP4JTbwFXdnI9U7MDPuwWtLT/Wt1EIuJID2M9gCzc8Nj/J8T4kTzkAdsnc0jnjYKTY+BKb8/ReQntoT+QR65r2B/oe6tBbTNjLjPhNu4rSQpkfXxTUa6WJ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1857;20:hbkKpiDu8Wy2UUPw9Gp+vpOvNK2wZ71vKtORoWqTIQkB5yuIkc4IeQlpObLJfvNY2+CRZpZhzbmc5UnhESHy21qFGPO+lbC0RMwiKUOFkj4zd/R5Ikhlz6aYRmZGERM1UEU/X+6rLcKHsA5vKuEfx45vPuNvYUieXIz358AQQbk= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Aug 2016 13:58:02.4707 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1857 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Aug 01, 2016 at 12:00:21PM +0200, Michal Hocko wrote: ... > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index c265212bec8c..eb7e39c2d948 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -2543,6 +2543,11 @@ static int mem_cgroup_resize_memsw_limit(struct mem_cgroup *memcg, > return ret; > } > > +static inline bool soft_limit_tree_empty(struct mem_cgroup_tree_per_node *mctz) > +{ > + return rb_last(&mctz->rb_root) == NULL; > +} > + I don't think traversing rb tree as rb_last() does w/o holding the lock is a good idea. Why is RB_EMPTY_ROOT() insufficient here?