Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp4599505yba; Sun, 19 May 2019 23:49:07 -0700 (PDT) X-Google-Smtp-Source: APXvYqwTFxTLEjoeearJ3aSfVA2iFDupGCzIh346qA4zlXkG+GEdlAchFT8UQ+SNNhmBMySEdEi/ X-Received: by 2002:a65:5c4c:: with SMTP id v12mr29238251pgr.283.1558334947894; Sun, 19 May 2019 23:49:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558334947; cv=none; d=google.com; s=arc-20160816; b=GkN9isTcn8zpZCZA2Rmyb958EiS5HYEI3230Gv2Ru/VfIdxfRhP8kAYAWLGIWgTnCj Canc6sieGhdMMeBJvngsinqE11EBnQcY7YbySsCeZXSHVkiwTkcXcGYnJjYn2KdwQaoq OkXNC31fjDqfp+3AylOCBLOsaSX3li7E2WZGTLB0NyKPkKfJe/vv8EoJjUNLseX08wey i1ZQXcBKRRVR1V5lGffwRn2/1Ure79igUEtlart/fYmXAnBc+WrwelmDHcPMx2At3r/1 HnEqk9KBARnROO5eMZf6RG46cXXA1bcbVOf4qYSMREwsqco+qISW0e3pQ1OIbgxUXMhP owcw== 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=pvmcntUKaLFWeIKV28cwZMSwwZ0f8GZCwK0RuRd6vxw=; b=IqEAa1C7oLDTO3xbZwEodbmn5jmyPVZkucqGwLZ3i80f5tKsGq81H591fpvXAsvqtT brDC/eTwQzvIO+7AOdInap/717l7HCU+MIXCpHssqXi7jy7As33Ciz0DKg8xHNJrLXrJ LYsPV23Fw5QrUsUfJ1K716LY4RELsF2T88pWnJqza3RWZ646bUfH/AG6tonie+aUwKcs XNRdc5XEc8ChnVGrBbdnDDa1AmOYsc5osRBjwQwp2y4fvDAcAiQcyXXpv+IZ3NFIAg0V jDOXX2CJNzwZW+xSfLppb44KzYuTClgz1iVYz6aCj1cjcCKYtooPOv4JksuvRRFH8MF9 g2NQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b="Tp/kx4vO"; 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 j8si17696728plb.352.2019.05.19.23.48.53; Sun, 19 May 2019 23:49:07 -0700 (PDT) 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="Tp/kx4vO"; 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 S1727878AbfETFld (ORCPT + 99 others); Mon, 20 May 2019 01:41:33 -0400 Received: from new4-smtp.messagingengine.com ([66.111.4.230]:60019 "EHLO new4-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725601AbfETFlc (ORCPT ); Mon, 20 May 2019 01:41:32 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailnew.nyi.internal (Postfix) with ESMTP id D6EB41160B; Mon, 20 May 2019 01:41:31 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Mon, 20 May 2019 01:41:31 -0400 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=pvmcntUKaLFWeIKV28cwZMSwwZ0f8GZCwK0RuRd6vxw=; b=Tp/kx4vO UsH3lifxwz1hf6IIZvoCuYCbS3N/bxeIEVJczgn7f7NSK3ljq+hzZo75SxFHhs61 eLKytTBmVNQeJfPJx0AqskyqdiYk4kRZD/sDasZgyVCdPfTew11AAqBLFyvz3ZiL gEoATFHVziwmgiSWPSPgNIBzkGFdMSk/oKmmb9a9XNpVoRjO6Eg08rYHYIw93/h6 avf2LrUg+U9Sj6kHhjdlMRyWFY3YosBdV2e46UtDbn3yVm3YtKtj2mHDUyv0SF41 tWoioUGzJWBWyPx/TgE7scZXI6laUj3o5rFiu1lZOANRvRPYxV6XVkLIO1yKT8El xjvjA4jOCg5H/w== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduuddruddtjedguddtudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepfdfvohgs ihhnucevrdcujfgrrhguihhnghdfuceothhosghinheskhgvrhhnvghlrdhorhhgqeenuc fkphepuddvgedrudeiledrudehiedrvddtfeenucfrrghrrghmpehmrghilhhfrhhomhep thhosghinheskhgvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihiivgepvd X-ME-Proxy: Received: from eros.localdomain (124-169-156-203.dyn.iinet.net.au [124.169.156.203]) by mail.messagingengine.com (Postfix) with ESMTPA id BA1B18005B; Mon, 20 May 2019 01:41:24 -0400 (EDT) From: "Tobin C. Harding" To: Andrew Morton , Matthew Wilcox Cc: "Tobin C. Harding" , Roman Gushchin , Alexander Viro , Christoph Hellwig , Pekka Enberg , David Rientjes , Joonsoo Kim , Christopher Lameter , Miklos Szeredi , Andreas Dilger , Waiman Long , Tycho Andersen , Theodore Ts'o , Andi Kleen , David Chinner , Nick Piggin , Rik van Riel , Hugh Dickins , Jonathan Corbet , linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH v5 03/16] slub: Sort slab cache list Date: Mon, 20 May 2019 15:40:04 +1000 Message-Id: <20190520054017.32299-4-tobin@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190520054017.32299-1-tobin@kernel.org> References: <20190520054017.32299-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 58251ba63e4a..db5e9a0b1535 100644 --- a/mm/slab_common.c +++ b/mm/slab_common.c @@ -393,7 +393,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 1c380a2bc78a..66d474397c0f 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -4333,6 +4333,8 @@ void kmem_cache_setup_mobility(struct kmem_cache *s, return; } + mutex_lock(&slab_mutex); + s->isolate = isolate; s->migrate = migrate; @@ -4341,6 +4343,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