From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755066AbbA2QRw (ORCPT ); Thu, 29 Jan 2015 11:17:52 -0500 Received: from mx2.parallels.com ([199.115.105.18]:51249 "EHLO mx2.parallels.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750840AbbA2QRv (ORCPT ); Thu, 29 Jan 2015 11:17:51 -0500 Date: Thu, 29 Jan 2015 19:17:39 +0300 From: Vladimir Davydov To: Christoph Lameter CC: Andrew Morton , Joonsoo Kim , Pekka Enberg , David Rientjes , Johannes Weiner , Michal Hocko , , Subject: Re: [PATCH -mm v2 1/3] slub: never fail to shrink cache Message-ID: <20150129161739.GE11463@esperanza> References: <012683fc3a0f9fb20a288986fd63fe9f6d25e8ee.1422461573.git.vdavydov@parallels.com> <20150128135752.afcb196d6ded7c16a79ed6fd@linux-foundation.org> <20150129080726.GB11463@esperanza> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jan 29, 2015 at 09:55:56AM -0600, Christoph Lameter wrote: > On Thu, 29 Jan 2015, Vladimir Davydov wrote: > > > Come to think of it, do we really need to optimize slab placement in > > kmem_cache_shrink? None of its users except shrink_store expects it - > > they just want to purge the cache before destruction, that's it. May be, > > we'd better move slab placement optimization to a separate SLUB's > > private function that would be called only by shrink_store, where we can > > put up with kmalloc failures? Christoph, what do you think? > > The slabinfo tool invokes kmem_cache_shrink to optimize placement. > > Run > > slabinfo -s > > which can then be used to reduce the fragmentation. Yeah, but the tool just writes 1 to /sys/kernel/slab/cache/shrink, i.e. invokes shrink_store(), and I don't propose to remove slab placement optimization from there. What I propose is to move slab placement optimization from kmem_cache_shrink() to shrink_store(), because other users of kmem_cache_shrink() don't seem to need it at all - they just want to release empty slabs. Such a change wouldn't affect the behavior of `slabinfo -s` at all. Thanks, Vladimir