From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752113AbcBZGBd (ORCPT ); Fri, 26 Feb 2016 01:01:33 -0500 Received: from mail-pa0-f41.google.com ([209.85.220.41]:34929 "EHLO mail-pa0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750789AbcBZGBc (ORCPT ); Fri, 26 Feb 2016 01:01:32 -0500 From: js1304@gmail.com X-Google-Original-From: iamjoonsoo.kim@lge.com To: Andrew Morton Cc: Christoph Lameter , Pekka Enberg , David Rientjes , Jesper Dangaard Brouer , Vlastimil Babka , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Joonsoo Kim Subject: [PATCH v2 00/17] mm/slab: introduce new freed objects management way, OBJFREELIST_SLAB Date: Fri, 26 Feb 2016 15:01:07 +0900 Message-Id: <1456466484-3442-1-git-send-email-iamjoonsoo.kim@lge.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Joonsoo Kim This submission is just intended to get more review if possible. This patchset is already on mmotm for a month and there is no problem at all. No changes from mmotm one. Changes from v1: o Fold fixes into corresponding ones (no difference from mmotm) o Add a clean-up patch at last per Christoph's comment Hello, This patchset implements new freed object management way, that is, OBJFREELIST_SLAB. Purpose of it is to reduce memory overhead in SLAB. SLAB needs a array to manage freed objects in a slab. If there is leftover after objects are packed into a slab, we can use it as a management array, and, in this case, there is no memory waste. But, in the other cases, we need to allocate extra memory for a management array or utilize dedicated internal memory in a slab for it. Both cases causes memory waste so it's not good. With this patchset, freed object itself can be used for a management array. So, memory waste could be reduced. Detailed idea and numbers are described in last patch's commit description. Please refer it. Thanks. Joonsoo Kim (17): mm/slab: fix stale code comment mm/slab: remove useless structure define mm/slab: remove the checks for slab implementation bug mm/slab: activate debug_pagealloc in SLAB when it is actually enabled mm/slab: use more appropriate condition check for debug_pagealloc mm/slab: clean up DEBUG_PAGEALLOC processing code mm/slab: alternative implementation for DEBUG_SLAB_LEAK mm/slab: remove object status buffer for DEBUG_SLAB_LEAK mm/slab: put the freelist at the end of slab page mm/slab: align cache size first before determination of OFF_SLAB candidate mm/slab: clean up cache type determination mm/slab: do not change cache size if debug pagealloc isn't possible mm/slab: make criteria for off slab determination robust and simple mm/slab: factor out slab list fixup code mm/slab: factor out debugging initialization in cache_init_objs() mm/slab: introduce new slab management type, OBJFREELIST_SLAB mm/slab: avoid returning values by reference include/linux/mm.h | 12 +- include/linux/slab_def.h | 3 + mm/slab.c | 626 ++++++++++++++++++++++++++--------------------- 3 files changed, 362 insertions(+), 279 deletions(-) -- 1.9.1