Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754974AbbB0S1K (ORCPT ); Fri, 27 Feb 2015 13:27:10 -0500 Received: from mail-wi0-f176.google.com ([209.85.212.176]:37486 "EHLO mail-wi0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751906AbbB0S1I (ORCPT ); Fri, 27 Feb 2015 13:27:08 -0500 From: Ebru Akagunduz To: linux-mm@kvack.org Cc: akpm@linux-foundation.org, kirill@shutemov.name, mhocko@suse.cz, mgorman@suse.de, rientjes@google.com, sasha.levin@oracle.com, hughd@google.com, hannes@cmpxchg.org, vbabka@suse.cz, linux-kernel@vger.kernel.org, riel@redhat.com, aarcange@redhat.com, Ebru Akagunduz Subject: [PATCH] mm: set khugepaged_max_ptes_none by 1/8 of HPAGE_PMD_NR Date: Fri, 27 Feb 2015 20:26:48 +0200 Message-Id: <1425061608-15811-1-git-send-email-ebru.akagunduz@gmail.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: 1908 Lines: 49 Using THP, programs can access memory faster, by having the kernel collapse small pages into large pages. The parameter max_ptes_none specifies how many extra small pages (that are not already mapped) can be allocated when collapsing a group of small pages into one large page. A larger value of max_ptes_none can cause the kernel to collapse more incomplete areas into THPs, speeding up memory access at the cost of increased memory use. A smaller value of max_ptes_none will reduce memory waste, at the expense of collapsing fewer areas into THPs. The problem was reported here: https://bugzilla.kernel.org/show_bug.cgi?id=93111 Signed-off-by: Ebru Akagunduz Reviewed-by: Rik van Riel --- mm/huge_memory.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index e08e37a..497fb5a 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -59,11 +59,10 @@ static DEFINE_MUTEX(khugepaged_mutex); static DEFINE_SPINLOCK(khugepaged_mm_lock); static DECLARE_WAIT_QUEUE_HEAD(khugepaged_wait); /* - * default collapse hugepages if there is at least one pte mapped like - * it would have happened if the vma was large enough during page - * fault. + * The default value should be a compromise between memory use and THP speedup. + * To collapse hugepages, unmapped ptes should not exceed 1/8 of HPAGE_PMD_NR. */ -static unsigned int khugepaged_max_ptes_none __read_mostly = HPAGE_PMD_NR-1; +static unsigned int khugepaged_max_ptes_none __read_mostly = HPAGE_PMD_NR/8; static int khugepaged(void *none); static int khugepaged_slab_init(void); -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/