From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933160AbcA0RSf (ORCPT ); Wed, 27 Jan 2016 12:18:35 -0500 Received: from mx2.suse.de ([195.135.220.15]:58500 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932361AbcA0RSd (ORCPT ); Wed, 27 Jan 2016 12:18:33 -0500 Subject: Re: [PATCH 16/16] mm/slab: introduce new slab management type, OBJFREELIST_SLAB To: Christoph Lameter References: <1452749069-15334-1-git-send-email-iamjoonsoo.kim@lge.com> <1452749069-15334-17-git-send-email-iamjoonsoo.kim@lge.com> <56A8C788.9000004@suse.cz> Cc: Joonsoo Kim , Andrew Morton , Pekka Enberg , David Rientjes , Joonsoo Kim , Jesper Dangaard Brouer , linux-mm@kvack.org, linux-kernel@vger.kernel.org From: Vlastimil Babka Message-ID: <56A8FBE4.1060806@suse.cz> Date: Wed, 27 Jan 2016 18:18:28 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/27/2016 05:48 PM, Christoph Lameter wrote: > On Wed, 27 Jan 2016, Vlastimil Babka wrote: > >> >> Can you elaborate? Do we actually need an extendable linked array? Why not just >> store the pointer to the next free object into the object, NULL for the last >> one? I.e. a singly-linked list. We should never need to actually traverse it? >> >> freeing object obj: >> *obj = page->freelist; >> page->freelist = obj; >> >> allocating object: >> obj = page->freelist; >> page->freelist = *obj; >> *obj = NULL; > > Well the single linked lists are a concept of another slab allocator. At > what point do we rename SLAB to SLUB2? OK. Perhaps a LSF/MM topic then to discuss whether we need both? What are the remaining cases where SLAB is better choice, and can there be something done about them in SLUB? (I can imagine there were such discussions in the past, and I came to kernel development only in 2013. In that case maybe enough time passed to revisit this?)