Received: by 2002:ac0:aed5:0:0:0:0:0 with SMTP id t21csp5585466imb; Thu, 7 Mar 2019 20:18:27 -0800 (PST) X-Google-Smtp-Source: APXvYqz5Fjis6Wfb0xHTr7AxLLoJxtqzCHIGqFCr1pj4jVT5AJDPB05Fs7Z/8he4aL0+AnFxSJRM X-Received: by 2002:a63:d64:: with SMTP id 36mr14425016pgn.360.1552018707839; Thu, 07 Mar 2019 20:18:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1552018707; cv=none; d=google.com; s=arc-20160816; b=tpvmM8cFYTGdTM25ZgVzPzEC9yUaXr0RsY04K2ovWe2mZTd+5gFFUeY5cV49B7nX47 OCJ/GZh3IPccICIxUbTrvYuTs5T8PL1pVPAxfEdQCIDozYLdOm6hEUbXoJmVaRNTOJy4 K4r3eDm9cMKmPbC/7SQOxVsShbuEay1AZnxEjoJhpTxnv6OdMm1bG/jW7CarYQh5ZTYH N1xSUEufmNCjNj7IwcOmT4v1EhTXbcsQBeAvV6KHdqZ89ZtZw/irsC8LpIoRn8HF6BlF 5ZZ1OZMivqlqOro0oRUSfBtAVW68W7ROJw49vjXK3uSAIMAi1eYGNYzeYIymGgjBRgXy ioNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=7aXu4Ayrrg1lqUVhlvuMknXlREOy+clc066/B0tC+rw=; b=PMQfIB4o035V3wm/erOkYaAK0gA6UTmu1HGJifTyIrGHcCr2ZW6rUSvLJ9ye7vwt6N lvn6RCV35QVW0L5Bn1SyDn/bYISr+gvD7Vv4RUPR+qMc60OmmPK5ig0/evjJ/mWKkQTJ /SmXwPkyL4E2AgQkS/SGTr3X4MEWESHBqJ4LeWlSOhIK9M2oew8jaLeJYxNyUovEK8ZH /ps3krbHK4/KKB5UkhLRkoFsrjwhkFhxHMBWDzK+vKGNwuvqm1SvNleQvpzIqYEcjQ3S KL+arhuW5T4zdsWfSufk/zbDjiea9qGSngcVDvdSlbovBDTyByn/835kaHCEzdpkdW9s jG+w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=5CgYTMir; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g16si5757696pfd.263.2019.03.07.20.18.12; Thu, 07 Mar 2019 20:18:27 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=5CgYTMir; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726431AbfCHEPV (ORCPT + 99 others); Thu, 7 Mar 2019 23:15:21 -0500 Received: from wout2-smtp.messagingengine.com ([64.147.123.25]:33537 "EHLO wout2-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726250AbfCHEPS (ORCPT ); Thu, 7 Mar 2019 23:15:18 -0500 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id 170A336A8; Thu, 7 Mar 2019 23:15:17 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Thu, 07 Mar 2019 23:15:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=7aXu4Ayrrg1lqUVhlvuMknXlREOy+clc066/B0tC+rw=; b=5CgYTMir sAHs6VuabE1G9iZrzN0Oi5mXbESfWpoQZyZRGmnw4vSL55ewvT5H4u8AeazvgsMc rBbvfmAZdeB25lubI+EM1xiVKSwZeeys5B8eRxi+inmikijvx6nHd/8Tnntb3twx 7PwPKdTAvpLyCjJGRCGxKIbhsIuh4buEjLuDNfszP6jm+/FrPDmdT5Y2dHQ2QE2i KZ7ZmY7za7/dNYV/AxNH19RNfLr5ccEHuVTJNyl4WSYdA93J0yS9d5Lp+2/py9HX Jof8yQjdClrJMhbQKcrKin5JiEl59DbFAfiBu+fYq2gyP5artxGvyE9+f6rz6saK 7xPc5fBThFgsRA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedutddrfeelgdeifecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepfdfvohgsihhn ucevrdcujfgrrhguihhnghdfuceothhosghinheskhgvrhhnvghlrdhorhhgqeenucfkph epuddvgedrudeiledrhedrudehkeenucfrrghrrghmpehmrghilhhfrhhomhepthhosghi nheskhgvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihiivgepge X-ME-Proxy: Received: from eros.localdomain (124-169-5-158.dyn.iinet.net.au [124.169.5.158]) by mail.messagingengine.com (Postfix) with ESMTPA id BE59DE4548; Thu, 7 Mar 2019 23:15:13 -0500 (EST) From: "Tobin C. Harding" To: Andrew Morton Cc: "Tobin C. Harding" , Christopher Lameter , Pekka Enberg , Matthew Wilcox , Tycho Andersen , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC 05/15] slub: Sort slab cache list Date: Fri, 8 Mar 2019 15:14:16 +1100 Message-Id: <20190308041426.16654-6-tobin@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190308041426.16654-1-tobin@kernel.org> References: <20190308041426.16654-1-tobin@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It is advantageous to have all defragmentable slabs together at the beginning of the list of slabs so that there is no need to scan the complete list. Put defragmentable caches first when adding a slab cache and others last. Co-developed-by: Christoph Lameter Signed-off-by: Tobin C. Harding --- mm/slab_common.c | 2 +- mm/slub.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mm/slab_common.c b/mm/slab_common.c index 754acdb292e4..1d492b59eee1 100644 --- a/mm/slab_common.c +++ b/mm/slab_common.c @@ -397,7 +397,7 @@ static struct kmem_cache *create_cache(const char *name, goto out_free_cache; s->refcount = 1; - list_add(&s->list, &slab_caches); + list_add_tail(&s->list, &slab_caches); memcg_link_cache(s); out: if (err) diff --git a/mm/slub.c b/mm/slub.c index 6ce866b420f1..f37103e22d3f 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -4427,6 +4427,8 @@ void kmem_cache_setup_mobility(struct kmem_cache *s, return; } + mutex_lock(&slab_mutex); + s->isolate = isolate; s->migrate = migrate; @@ -4435,6 +4437,10 @@ void kmem_cache_setup_mobility(struct kmem_cache *s, * to disable fast cmpxchg based processing. */ s->flags &= ~__CMPXCHG_DOUBLE; + + list_move(&s->list, &slab_caches); /* Move to top */ + + mutex_unlock(&slab_mutex); } EXPORT_SYMBOL(kmem_cache_setup_mobility); -- 2.21.0