From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751326AbcECFXI (ORCPT ); Tue, 3 May 2016 01:23:08 -0400 Received: from mail-pf0-f181.google.com ([209.85.192.181]:35534 "EHLO mail-pf0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750709AbcECFXH (ORCPT ); Tue, 3 May 2016 01:23:07 -0400 From: js1304@gmail.com X-Google-Original-From: iamjoonsoo.kim@lge.com To: Andrew Morton Cc: Vlastimil Babka , mgorman@techsingularity.net, Minchan Kim , Alexander Potapenko , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Joonsoo Kim Subject: [PATCH 0/6] mm/page_owner: use tackdepot to store stacktrace Date: Tue, 3 May 2016 14:22:58 +0900 Message-Id: <1462252984-8524-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 patchset changes a way to store stacktrace in page_owner in order to reduce memory usage. Below is motivation of this patchset coped from the patch 6. Currently, we store each page's allocation stacktrace on corresponding page_ext structure and it requires a lot of memory. This causes the problem that memory tight system doesn't work well if page_owner is enabled. Moreover, even with this large memory consumption, we cannot get full stacktrace because we allocate memory at boot time and just maintain 8 stacktrace slots to balance memory consumption. We could increase it to more but it would make system unusable or change system behaviour. To solve the problem, this patch uses stackdepot to store stacktrace. Thanks. Joonsoo Kim (6): mm/compaction: split freepages without holding the zone lock mm/page_owner: initialize page owner without holding the zone lock mm/page_owner: copy last_migrate_reason in copy_page_owner() mm/page_owner: introduce split_page_owner and replace manual handling tools/vm/page_owner: increase temporary buffer size mm/page_owner: use stackdepot to store stacktrace include/linux/mm.h | 1 - include/linux/page_ext.h | 4 +- include/linux/page_owner.h | 12 ++-- lib/Kconfig.debug | 1 + mm/compaction.c | 45 +++++++++++---- mm/page_alloc.c | 37 +----------- mm/page_isolation.c | 9 ++- mm/page_owner.c | 136 ++++++++++++++++++++++++++++++++++++++------- tools/vm/page_owner_sort.c | 9 ++- 9 files changed, 173 insertions(+), 81 deletions(-) -- 1.9.1