Received: by 10.223.176.46 with SMTP id f43csp483736wra; Wed, 24 Jan 2018 01:03:36 -0800 (PST) X-Google-Smtp-Source: AH8x224lmprLxYLdcazlcr/DLoG1GsQquBl2XsBXfRiUmk3ynnHHdKf9W+5VyBbgtulIkSumwhB/ X-Received: by 2002:a17:902:e83:: with SMTP id 3-v6mr1786455plx.274.1516784616220; Wed, 24 Jan 2018 01:03:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516784615; cv=none; d=google.com; s=arc-20160816; b=jq2p9TnSripgaOh7Em0tBzBCcj4NOfhVFEyZ7+JsJfpF0q9RZlNsEML4kP+hVmG9DI DV9skfG1CgghIHA+Uk6NUXpYZZv7Hxi0IyJ3ZbUHC0Mq+BJnIVC+RiJFhEZDXzKfUpOf cM9nRpU4NFiCj0yzXhET2xlluUhyMDoswDMcsRv6yeHqWh3AQ2jSS+scMIpN2WRuqiJ9 6a0A6Py6ogZuP1s3ioYjJZ3bNaDVQtqRJYRu8DMd8pXNKCUPQ+HhzyUXsOxcZZyMXCkU RPs3kITKwgXPibQRBxRsiJExyVAkMJ4O1YuFYrDM/HKp50G1VD4EBUzs993e9UpkGjvo QiKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:date:cc:to:subject:from:references :in-reply-to:message-id:arc-authentication-results; bh=58uFwS96mhjvR4WIVqIWeDZLCdOjHcHOmQvZtWeQvVs=; b=Gy9Y4Z7nbsUbGNZ3lBfMQBCwDTKF4Ar/Pd5+POvH51ILUrVgE727ogf2TKwbATq77I NY6XgHhXW258tDM9pa8gSqn/2rkfpopa03klkwRbVo1SNpiI2yxejcbcb5pPKP33BYWg Y/CEExm8Do7o7eaWJrNm2BK+exKTAesoN8nQxMPSIPE/AbrZp8I+iH4t4tp1WxUlUIY3 3qoUySdKKlOKyFFOf6zoIJgov0kImiBfauJqxkFORGVPOiCaRNNvwLg84MMqB6lUMm2s Sd16Kz5GUCX14RAP4gSV1qoa6fEJNPaj3oJDKg15GYrjxJMCnks/rXcllx1OHf9GXDLX wF/A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b61-v6si4673597plb.709.2018.01.24.01.03.21; Wed, 24 Jan 2018 01:03:35 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932797AbeAXJCn (ORCPT + 99 others); Wed, 24 Jan 2018 04:02:43 -0500 Received: from pegase1.c-s.fr ([93.17.236.30]:1737 "EHLO pegase1.c-s.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932777AbeAXJCf (ORCPT ); Wed, 24 Jan 2018 04:02:35 -0500 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 3zRK1X1zpRz9ttrd; Wed, 24 Jan 2018 10:02:24 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at c-s.fr Received: from pegase1.c-s.fr ([192.168.12.234]) by localhost (pegase1.c-s.fr [192.168.12.234]) (amavisd-new, port 10024) with ESMTP id PmLPvxRHBEk7; Wed, 24 Jan 2018 10:02:24 +0100 (CET) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase1.c-s.fr (Postfix) with ESMTP id 3zRK1X1Q7Lz9ttrY; Wed, 24 Jan 2018 10:02:24 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 7B2EF8B86D; Wed, 24 Jan 2018 10:02:34 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id 0eFxIyZHRQ0N; Wed, 24 Jan 2018 10:02:34 +0100 (CET) Received: from PO15451.localdomain (po15451.idsi0.si.c-s.fr [172.25.231.40]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 588BB8B973; Wed, 24 Jan 2018 10:02:34 +0100 (CET) Received: by localhost.localdomain (Postfix, from userid 0) id 467716E91D; Wed, 24 Jan 2018 10:02:34 +0100 (CET) Message-Id: <362a93307a09b521878c47a8999a39a228184293.1516783089.git.christophe.leroy@c-s.fr> In-Reply-To: <6920f6efe2dcdabf59350b2d31ee6bd4bdef57f4.1516783089.git.christophe.leroy@c-s.fr> References: <6920f6efe2dcdabf59350b2d31ee6bd4bdef57f4.1516783089.git.christophe.leroy@c-s.fr> From: Christophe Leroy Subject: [PATCH v3 5/5] powerpc/mm: Fix growth direction for hugepages mmaps with slice To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Scott Wood , aneesh.kumar@linux.vnet.ibm.com Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Date: Wed, 24 Jan 2018 10:02:34 +0100 (CET) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org An application running with libhugetlbfs fails to allocate additional pages to HEAP due to the hugemap being done inconditionally as topdown mapping: mmap(0x10080000, 1572864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0) = 0x73e80000 [...] mmap(0x74000000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0x180000) = 0x73d80000 munmap(0x73d80000, 1048576) = 0 [...] mmap(0x74000000, 1572864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0x180000) = 0x73d00000 munmap(0x73d00000, 1572864) = 0 [...] mmap(0x74000000, 1572864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0x180000) = 0x73d00000 munmap(0x73d00000, 1572864) = 0 [...] As one can see from the above strace log, mmap() allocates further pages below the initial one because no space is available on top of it. This patch fixes it by requesting bottomup mapping as the non generic hugetlb_get_unmapped_area() does Fixes: d0f13e3c20b6f ("[POWERPC] Introduce address space "slices" ") Signed-off-by: Christophe Leroy --- v3: Was a standalone patch before, but conflicts with this serie. arch/powerpc/mm/hugetlbpage.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c index 79e1378ee303..368ea6b248ad 100644 --- a/arch/powerpc/mm/hugetlbpage.c +++ b/arch/powerpc/mm/hugetlbpage.c @@ -558,7 +558,7 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, return radix__hugetlb_get_unmapped_area(file, addr, len, pgoff, flags); #endif - return slice_get_unmapped_area(addr, len, flags, mmu_psize, 1); + return slice_get_unmapped_area(addr, len, flags, mmu_psize, 0); } #endif -- 2.13.3