Received: by 10.223.176.46 with SMTP id f43csp554221wra; Wed, 24 Jan 2018 02:21:11 -0800 (PST) X-Google-Smtp-Source: AH8x226Fmn5qtJM0ofPC1Q1ro/sSrl+CY1ILIcmYp+iGQ2j2oMbtT8/ghORG7NSWRchdC4IKCnSv X-Received: by 10.99.110.205 with SMTP id j196mr10306078pgc.54.1516789271808; Wed, 24 Jan 2018 02:21:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516789271; cv=none; d=google.com; s=arc-20160816; b=MvKhGewtbhhGREvHXALzExaSrK8iBNz/kiIqP86UGCv7VrDLYhrYkW+BnW/rYTyaNw onmOtlbJEviFQQ+kD3CttpcPN2UUZgEdYyJ+9EFwxoTNfkeqg6TUMTEMmAsP4JhYD9rD RpybW5tD/2v3amjkhHXA4uliQkkjp1S/xO71AW3/ketcgBNYUgVOrNPfl1xtu+2otGXZ cwqdX3x6X50L0bz30ZZCUYzIeRQL2QcMZvb/8OFq2BAoPA9Lwud/Z1FR313TWeGAmLrp jQ+HN8+Y5KgAqOGC+X3ILKZSaxReqAf3vsPB7C04ljf7d7VYk7O+UplL6GAK2bI7+t7x 5pOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=TIBXrZTMRIcCh13ayHRBy5GEwRdACD7eIMYaYbH1ZUg=; b=usSsdTLBeDir3FbVpBzidd1T+cDTnGv7d+aqv5VG1dGNo/BEdK56UNE4ylwt8q79r/ uI0iZsisWxA+FRm4H3hn2caPGlIS3FAPso/2VgLCo9CiklbmRvA6SeLzHgIzA169hifQ eocSSWRxFO+c0aeswn9fljjMjRx4e6UdZbqAWopdEYRF4gWun9u0ipZZsqG4cSQXtonG 51ZKFAxeiDPHjI2G1IrcHPQtgHxpwMcWQBivhZHKEMtQ/3edEgcGRlEGw5Xe8U7zfTkD QLrdrPS7TbLinOdYvjzNgbjaHevHCS5J8KRHPGt9PlUYJDoUqkEwWfZ09r5Cn5NzCVuR hiyg== 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 h184si15704309pgc.148.2018.01.24.02.20.57; Wed, 24 Jan 2018 02:21:11 -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 S932996AbeAXKUA (ORCPT + 99 others); Wed, 24 Jan 2018 05:20:00 -0500 Received: from pegase1.c-s.fr ([93.17.236.30]:22887 "EHLO pegase1.c-s.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932634AbeAXKT6 (ORCPT ); Wed, 24 Jan 2018 05:19:58 -0500 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 3zRLkq1KJYz9tttY; Wed, 24 Jan 2018 11:19:47 +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 kaGzJMEK3kGH; Wed, 24 Jan 2018 11:19:47 +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 3zRLkq0Tk0z9tttF; Wed, 24 Jan 2018 11:19:47 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 70E008B984; Wed, 24 Jan 2018 11:19:57 +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 DTYBAIXgJJIN; Wed, 24 Jan 2018 11:19:57 +0100 (CET) Received: from PO15451 (po15451.idsi0.si.c-s.fr [172.25.231.40]) by messagerie.si.c-s.fr (Postfix) with ESMTP id D88348B983; Wed, 24 Jan 2018 11:19:56 +0100 (CET) Subject: Re: [PATCH v3 5/5] powerpc/mm: Fix growth direction for hugepages mmaps with slice To: "Aneesh Kumar K.V" , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Scott Wood Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org References: <6920f6efe2dcdabf59350b2d31ee6bd4bdef57f4.1516783089.git.christophe.leroy@c-s.fr> <362a93307a09b521878c47a8999a39a228184293.1516783089.git.christophe.leroy@c-s.fr> <9aea8b6f-0d1a-b700-efe4-8efcebc5d16d@linux.vnet.ibm.com> <47bbd8be-7b2e-245b-08d9-24958eec2ed2@linux.vnet.ibm.com> <03c7f5ce-c2ed-7038-3a8b-3bb7a9a4a2dc@c-s.fr> From: Christophe LEROY Message-ID: <8ac4bfb7-74a4-bf5d-9ee6-d3c545ff5b68@c-s.fr> Date: Wed, 24 Jan 2018 11:19:56 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: fr Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le 24/01/2018 à 11:08, Aneesh Kumar K.V a écrit : > > > On 01/24/2018 03:33 PM, Christophe LEROY wrote: >> >> >> Le 24/01/2018 à 10:51, Aneesh Kumar K.V a écrit : >>> >>> >>> On 01/24/2018 03:09 PM, Christophe LEROY wrote: >>>> >>>> >>>> Le 24/01/2018 à 10:35, Aneesh Kumar K.V a écrit : >>>>> >>> >>>>>> Did you try with HUGETLB_MORECORE_HEAPBASE=0x11000000 on PPC64 as >>>>>> I suggested in my last email on this subject (22/01/2018 9:22) ? >>>>> >>>>> >>>>> yes. The test ran fine for me >>>> >>>> You tried with 0x30000000, it works as well on PPC32. >>>> >>>> I'd really like you to try with 0x11000000 which is in the same >>>> slice as the 10020000-10030000 range. >>>> >>>> >>> >>> Now that explains is better. But then the requested HEAPBASE was not >>> free and hence topdown search got an address in the below range. >>> >>> 7efffd000000-7f0000000000 rw-p 00000000 00:0d 1082770 /anon_hugepage >>> (deleted) >>> >>> >>> The new range allocated is such that there is no scope for expansion >>> of heap if we do a topdown search. But why should that require us to >>> change from topdown/bottomup search? >>> >>> >>> 10000000-10010000 r-xp 00000000 fc:00 9044312 /home/kvaneesh/a.out >>> 10010000-10020000 r--p 00000000 fc:00 9044312 /home/kvaneesh/a.out >>> 10020000-10030000 rw-p 00010000 fc:00 9044312 /home/kvaneesh/a.out >>> 7efffd000000-7f0000000000 rw-p 00000000 00:0d 1082770 /anon_hugepage >>> (deleted) >>> 7ffff2d40000-7ffff7d60000 rw-p 00000000 00:00 0 >>> 7ffff7d60000-7ffff7f10000 r-xp 00000000 fc:00 9250090 >>> /lib/powerpc64le-linux-gnu/libc-2.23.so >>> 7ffff7f10000-7ffff7f20000 r--p 001a0000 fc:00 9250090 >>> /lib/powerpc64le-linux-gnu/libc-2.23.so >>> 7ffff7f20000-7ffff7f30000 rw-p 001b0000 fc:00 9250090 >>> /lib/powerpc64le-linux-gnu/libc-2.23.so >>> 7ffff7f40000-7ffff7f60000 r-xp 00000000 fc:00 10754812 >>> /usr/lib/libhugetlbfs.so.0 >>> 7ffff7f60000-7ffff7f70000 r--p 00010000 fc:00 10754812 >>> /usr/lib/libhugetlbfs.so.0 >>> 7ffff7f70000-7ffff7f80000 rw-p 00020000 fc:00 10754812 >>> /usr/lib/libhugetlbfs.so.0 >>> 7ffff7f80000-7ffff7fa0000 r-xp 00000000 00:00 0 [vdso] >>> 7ffff7fa0000-7ffff7fe0000 r-xp 00000000 fc:00 9250107 >>> /lib/powerpc64le-linux-gnu/ld-2.23.so >>> 7ffff7fe0000-7ffff7ff0000 r--p 00030000 fc:00 9250107 >>> /lib/powerpc64le-linux-gnu/ld-2.23.so >>> 7ffff7ff0000-7ffff8000000 rw-p 00040000 fc:00 9250107 >>> /lib/powerpc64le-linux-gnu/ld-2.23.so >>> 7ffffffd0000-800000000000 rw-p 00000000 00:00 0 [stack] >>> >>> >>> For the specific test, one should pass the HEAPBASE value such that >>> it can be expanded if required isn't it ? >> >> For the test, yes, it is dumb to pass an unusable HEAPBASE, but what >> happens in real life: >> * PPC32: No HEAPBASE, hugetlbfs defines a HEAPBASE at sbrk(0) + >> PAGE_SIZE = 0x10800000 ==> This is in the same slice as already >> allocated ==> the kernel does as if mmap() had been called with no >> hint address and allocates something unusable instead. >> * PPC64: No HEAPBASE, hugetlbfs seems to define a HEAPBASE at >> 100000000000, which doesn't conflict with an already allocated mapping >> ==> it works. >> >> Now, when we take the generic case, ie when slice is not activated, >> when you call mmap() without a hint address, it allocates a suitable >> address because it does bottom-up. Why do differently with slices ? >> > > IIUC that is largely arch dependent, PPC64 always did topdown search. > Even for regular non hugetlb mmap it did topdown search. If you set > legacy mmap we selected bottom up approach. You can check > arch_pick_mmap_layout() for more details. Now x86 is slightly different. > For the default search if we can't find a mapping address it will try a > bottomup search. Having said that if you think libhugetlbfs made > assumptions with respect to 8xx and you don't want to break it make > 8xx unmapped area search bottomup. > Or would there be a way to make libhugetlbfs aware of the slices constraints and make it choose a suitable hint address at first try ? Christophe