From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752784AbcF1QtA (ORCPT ); Tue, 28 Jun 2016 12:49:00 -0400 Received: from mail-am1on0134.outbound.protection.outlook.com ([157.56.112.134]:27454 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751948AbcF1Qsq (ORCPT ); Tue, 28 Jun 2016 12:48:46 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=VDavydov@virtuozzo.com; Date: Tue, 28 Jun 2016 19:48:34 +0300 From: Vladimir Davydov To: Chen Feng CC: , , , , , , , , , , , , , , Subject: Re: [PATCH] mm, vmscan: set shrinker to the left page count Message-ID: <20160628164834.GB30658@esperanza> References: <1467025335-6748-1-git-send-email-puck.chen@hisilicon.com> <20160627165723.GW21652@esperanza> <57725364.60307@hisilicon.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <57725364.60307@hisilicon.com> X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: HE1PR03CA0003.eurprd03.prod.outlook.com (10.163.170.141) To AM5PR0801MB1618.eurprd08.prod.outlook.com (10.169.246.12) X-MS-Office365-Filtering-Correlation-Id: 678c23a1-906a-40f6-c13d-08d39f74101d X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1618;2:uNyUykTr0i9QQgttaHG+xLW1yuwS0LJm92Bo7AvmUg1z/XjZ74sz2ep649FbuUjxOWaV7JFq+T1Bjdh6dJYnAY1dqjH1xclfhxcZDRjCEGEt4OaJcK8ynB8fF3/vdUgRwLtzwwhPS+mxbPOQIYfqSDI/UggV93/VbmgqPk/LfQNcZdl1R6BXk62m2CDr1yaM;3:KSstvlA8L17yPIFqMz6oeZx5fx3qEti1RYpfqxjkZ6rxvkIkRbbVNeSV5pUIY4CxXMT5QvPaaH7BXHY2NXPC5epCjvnBbqKCwQUH9SNjGIrwIY4Z5KuXbZfJltlnaCjb;25:6qiO+57YYNsgzTBzfMeLDWBka1rmIXON4LzGz+MsoO+gM2iCWDusfe8AFmX0ej/w525jqbbyB5Hk+Zp7qAj4sgITM4jaW/TtuNhnrMf5o/uCpSa8Ysy4QcCew0rSpSOjyciqpvIFrgJxiBu2brS7PG3OLMUQ9L9Lx/MijTAGQN6D/TKX9bmCIhrumCEzXUuD4BPXCuEbrg8o6WGPYKgh5CnJxw9pGnRNkuzvZdBWNGYqYHTR0sWAmN7R5ntISbuHL4H//b9IiQwTVdrKhZsZCdj3QRYc0aikRC1z1RS0tR+9dGxQ387JFtH8N19UCnVNuHA6CzSzAuAGgALeJy8MidBa9huV/X/cFAIWnRL1EwfW84z54JSwJaWJZHFmU9G/xEZt02KfxkiJqdLmbPhQi5K/VGnm03n+4LPEiPSLFoI= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1618; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1618;31:gFvaFs5LIgMttPAfzo528l9AoX4wyoU8D3mk754N+GtdaL2ECUfyWwVpMYCGRFiI7Tt0eZcoyBkhm0TczUdsDMCCSmZosm0DefUlO1pP3E7lwX3A0zRWcwPaIG3nnlR98osuoOg3rJo15XZVAuTLHPcLHuJUUPZXI5B1TYq4fZ6MdlQa6zF/PR9wzIAGtdzEiADaMFt/MHoth5NJGoWdSw==;4:nVL+wZWvTURTV75mGrYn41IluyMZCBP3FNcSjeEWIERB8xIN+nn+3cOBDQUxFkrhbdlryUxe79/EvH+Ba0H8RmoWa7/CoNw5bZ1nSTv0+ERCCxF2L0pNVhN75NQlv4WtCYLClntFhJ26LkUaJIwy8GfCeyYrqerzc+pRmT4uCJpMNi15cKrjm8tvuTEe3HEhM8IzzvUFMhNCqkamotvXHcqGiMLY8XzwifRZ7jN1TJy5UouZKlKRSKUebfRYWsul+4NosX/HLsjK+faP0N2nbjuRecHGN7loUn3Xl1abCu5OexaJSMwWbTIKEkogRYojZkHgR12jXiRd9Pmxu18tnqpSMPL8Wsk2n78HTf6k0/AsPlNaLCPh0R4+tN4E8lRuA1W3ZPaznSK8pR5qmGVq+5w2C+iu/fZ433EKFJ/aarw= 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:AM5PR0801MB1618;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1618; X-Forefront-PRVS: 0987ACA2E2 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(189002)(24454002)(199003)(8676002)(81156014)(81166006)(50466002)(92566002)(86362001)(23676002)(47776003)(42186005)(9686002)(305945005)(101416001)(2950100001)(1076002)(33656002)(3846002)(6116002)(68736007)(2906002)(2870700001)(586003)(4326007)(189998001)(50986999)(97736004)(76176999)(105586002)(54356999)(80792005)(33716001)(106356001)(7736002)(110136002)(7846002)(77096005)(66066001);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0801MB1618;H:esperanza;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTVQUjA4MDFNQjE2MTg7MjM6ejR6WDdUeGxHNzNmaHBObEhkdG5xV2ZX?= =?utf-8?B?ZGhXL0RtTStzV1ZydFpTQ3QxSjYyTnczUllWcDBJTjVrd3JPM20zamFjYzNa?= =?utf-8?B?aDBNVWs0V1JuMFpmZ1ViRlBhSzhKcXNzWlZWcW5tM0RFT0tzRmlYUEZYMEVX?= =?utf-8?B?bi9HT2lYTFVLOUFaZFQrK1BhTzZiSW5mVk9RL3dSbE5lSE5kVkpOck4wQUQ0?= =?utf-8?B?N3QyN3NpRWFLRU0rU1E3Y2VBMC9aYlBIRTRNT2pTZEdpanVvUjU4Rndab29O?= =?utf-8?B?akpOTVlLS1YrV21naUhuK21IUnowbmdBM2VGbnBZVnpiSzB1N0RkOWFrbEtl?= =?utf-8?B?WDgxc3g2Nk9nSEw4OEpVY0xuTVlrTDd1R2VWSlZRVEhJWFBxWU8zOWRoQlhS?= =?utf-8?B?ZnJXZ21wZGNuYnlkRlYzUlVtek1jb2xtQjNVL2pYRWs0QmFFeWY1T0lqWW1u?= =?utf-8?B?R0hVN0hGS3ZPbzRVWjY4WWFlSUJCbjVhNWpvRXZ2NzNSdXYyUlNwUzRobnBr?= =?utf-8?B?U1lqQUdjTlR1akNiNUpEaDJpQUpINGNSZFhQSGJ0N2VqMUU4L2tVbk00UExi?= =?utf-8?B?UFViY3U3dVR3ZGEvOUwwMmQvZTBnKzlxQ0djc28vVFl3Rmg1elF4L3dNT0ky?= =?utf-8?B?Y0Vxem5BRW94Z0xTSkRMRHpHSTZBVk4yRVI0T3VnVHNpMnd2c1g1bkFUZTF6?= =?utf-8?B?bEVEUHBWMTdFWVJlYy9tWFpoVXlsdjJ1OEVXV0RTRWthMjJDalpOMFV1RlZx?= =?utf-8?B?U1hrc3U5UXcybmpVb2RQNUVqaUc1ZUxwWDBDNDlWdklieDB6cnhOQStjM3dQ?= =?utf-8?B?RUNUMmh6WE8zOHRzV1pjMGdWUis5aDFORnNUVnJYQ1lTcUhFLzJlUkZtbTlT?= =?utf-8?B?akx3T1M3L2FJenRUcHEwVEpSd0U1N3lXZndNVFRSSVJwQ2luZlBsN2VPRWkv?= =?utf-8?B?T0ZBQWp2c0paTDBMc2M4STRzMjU5WDlWYWoxMy9rNzNiM3ZuSFBlL2QveGpp?= =?utf-8?B?MGZuazRrWGJ2RGF3em9DaS9nTGhGZ0dOVk43MUJJVFdsdnpybXF4WWJaWHVE?= =?utf-8?B?bjJ5emFEQU9rRWNYRGt6WGlaL011ZU1oMU5rdnVGbE9KUVRkbzJrV2lvd0l0?= =?utf-8?B?ZmhyMFYwYnpVdkRaUmpTZkV2aHYxTnFxbnN2NzBLODJZamdNaG1QR3V0OHA4?= =?utf-8?B?T3NjbHVKOUMydDJmYUdzVURidWtQcHVPa3BvZFg2UENYUmtUbmwrWURHTDVa?= =?utf-8?B?SkZ1dUx5MFhQaktFUkVZTmJObDRTbTBscjNmVkQ0aHhjRjhUbXUya09sOWtN?= =?utf-8?B?clVzMjB6UWdLZEd2MGJObHZVZVVCNklYcHA2bFZpL2NXODN2YlRQcmpiT2dj?= =?utf-8?B?UXBvZ1pvc25JY2doM2Z3cnczSmRYbUZUNzJkRUVuaUlydVlvYVdYLzlhYTk3?= =?utf-8?Q?NUOcQl4I=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1618;6:HaMPMIm8SiQy6MhCirTH5suEyccSaty99Ve5rbNlhHnAz/YQVEsoq/b6ExsalbgWdJYna521O50ktt54isBiMqdtJK4Xd2S62a7DKPorgfkQjBmTHgQAS0g0Pq11LPOIdnTv9GqQ+hoktA4nq5XdZjRaPBW56oYkqbEPRuTf+HxCb7fw3g3OrQHsUCATNy4KyD29Ge50qdsOQwV0ut8XaSm2+LrFpugJaztMMcY16QLGTkYoRy+L6yYWCJlvbhRRB79YbkBPkg3QW29xLKuYEQq8DjYeO0luUKTl6elemVihHMrgRgGktcYOO5vaOp3R;5:8DLyJ45a5CWwFPTGx0ltV4/fqh9CdNLjQYXW9U84ONH6Bu3ULk6w1WcBRWZKNdxn9238V6XP8+E1BBgog/v7wrt4taqhYQ5Cn7z9r1BvM5l1ifr6VN9tf71EAnPCKSf65yQoLhzdjDVmJUrzVJNtdQ==;24:BCC71LDNhfzTS+7sZTmSegmt1+6shJbrf5Nbi036ObZl+WmZUCtJlNwFB/91rOeBuZ/I9pVe01UPkl9LKv4yC9A+93IZnyUfpgJczgQyHx0=;7:QM85os9FrqOJvsgP8dyzZe9TlU1sCTLc/bJd0Z0h8nISY6oCdjC/4Bo1Xgd0tj4VsvRVgZhQAWRJXiFwcWAaLPG+B0Lp5dsc3/PjUwvY6D+3QX1g4SEWVl6kkeE7P5I/s9biu5Hi6hc3t45SjdRcNXWbkYOU5Q8mepZ5a81OoKCdemkQYFCAE6gzm+RZijKW7JR2kuZlKfZAQWLDWRu54Rt8cSRg6kfk3OkJUG6dOyekbTnZFeUunSOjpo31bVG3 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1618;20:sxAhUxcTKoGPmIkQt+UxV0UHiJphcscq1XEqu+MUq9Dcs+y0K3u85lHflX6xxlEVVwvYjRD7WY+MK6JgpUEeNx8Yw/jMOCCh7MAf0pszH75Ga3ZWdBYxLTUGeDlurNG4rIDB//tpyldkAk04YSXdMnaTkqhSdOSCCmRXjl38pEQ= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2016 16:48:40.3302 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1618 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 28, 2016 at 06:37:24PM +0800, Chen Feng wrote: > Thanks for you reply. > > On 2016/6/28 0:57, Vladimir Davydov wrote: > > On Mon, Jun 27, 2016 at 07:02:15PM +0800, Chen Feng wrote: > >> In my platform, there can be cache a lot of memory in > >> ion page pool. When shrink memory the nr_to_scan to ion > >> is always to little. > >> to_scan: 395 ion_pool_cached: 27305 > > > > That's OK. We want to shrink slabs gradually, not all at once. > > > > OK, But my question there are a lot of memory waiting for free. > But the to_scan is too little. Small value of 'total_scan' in comparison to 'freeable' (in shrink_slab) means that memory pressure is not really high and so there's no need to scan all cached objects yet. > > So, the lowmemorykill may kill the wrong process. > >> > >> Currently, the shrinker nr_deferred is set to total_scan. > >> But it's not the real left of the shrinker. > > > > And it shouldn't. The idea behind nr_deferred is following. A shrinker > > may return SHRINK_STOP if the current allocation context doesn't allow > > to reclaim its objects (e.g. reclaiming inodes under GFP_NOFS is > > deadlock prone). In this case we can't call the shrinker right now, but > > if we just forget about the batch we are supposed to reclaim at the > > current iteration, we can wind up having too many of these objects so > > that they start to exert unfairly high pressure on user memory. So we > > add the amount that we wanted to scan but couldn't to nr_deferred, so > > that we can catch up when we get to shrink_slab() with a proper context. > > > I am confused with your comments. If the shrinker return STOP this time. > It also can return STOP next time. There's always kswapd running in background which calls reclaim with GFP_KERNEL. So even if a process issues a lot of successive GFP_NOFS, which makes fs shrinkers abort scan, their objects will still be scanned and reclaimed by kswapd.