Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752674AbcJMII7 (ORCPT ); Thu, 13 Oct 2016 04:08:59 -0400 Received: from mail-pa0-f65.google.com ([209.85.220.65]:33720 "EHLO mail-pa0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751171AbcJMIIh (ORCPT ); Thu, 13 Oct 2016 04:08:37 -0400 From: js1304@gmail.com X-Google-Original-From: iamjoonsoo.kim@lge.com To: Andrew Morton Cc: Johannes Weiner , Vlastimil Babka , Mel Gorman , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Joonsoo Kim Subject: [RFC PATCH 0/5] Reduce fragmentation Date: Thu, 13 Oct 2016 17:08:17 +0900 Message-Id: <1476346102-26928-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 Content-Length: 1653 Lines: 47 From: Joonsoo Kim Hello, This is a patchset to reduce fragmentation. Patch 1 ~ 3 changes allocation/free logic to reduce fragmentation. Patch 4 ~ 5 is to manually control number of unmovable/reclaimable pageblock by user. Usually user has more knowledge about their system and if the number of unmovable/reclaimable pageblock is pre-defined properly, fragmentation would be reduced a lot. I found that this patchset reduce fragmentaion on my test. System: 512 MB Workload: Kernel build test (make -j12, 5 times) Result: Number of mixed movable pageblock / Number of movable pageblock Base: 50 / 205 Patch 1 ~ 3: 20 / 205 Patchset + 15% Pre-defined unmovable/reclaimable pageblock: 0 / 176 Note that I didn't test hard so I'm not sure if there is a side-effect or not. If there is no disagreement, I will do more testing and repost the patchset. Johannes, this patchset would not help to find the root cause of your regression but it would help to mitigate your symptom. This patchset is based on next-20161006. Thanks. Joonsoo Kim (5): mm/page_alloc: always add freeing page at the tail of the buddy list mm/page_alloc: use smallest fallback page first in movable allocation mm/page_alloc: stop instantly reusing freed page mm/page_alloc: add fixed migratetype pageblock infrastructure mm/page_alloc: support fixed migratetype pageblock include/linux/mmzone.h | 6 +- include/linux/pageblock-flags.h | 3 +- mm/page_alloc.c | 224 ++++++++++++++++++++++++++++++---------- mm/vmstat.c | 7 +- 4 files changed, 179 insertions(+), 61 deletions(-) -- 1.9.1