From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.1 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 06527ECE588 for ; Tue, 15 Oct 2019 11:25:10 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id BA14921835 for ; Tue, 15 Oct 2019 11:25:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="noqRsi9+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BA14921835 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 56D6A8E0005; Tue, 15 Oct 2019 07:25:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4F8178E0001; Tue, 15 Oct 2019 07:25:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 398068E0005; Tue, 15 Oct 2019 07:25:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0150.hostedemail.com [216.40.44.150]) by kanga.kvack.org (Postfix) with ESMTP id 170418E0001 for ; Tue, 15 Oct 2019 07:25:09 -0400 (EDT) Received: from smtpin04.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with SMTP id 9E48A180284F8 for ; Tue, 15 Oct 2019 11:25:08 +0000 (UTC) X-FDA: 76045787496.04.screw30_6708ee6979a42 X-HE-Tag: screw30_6708ee6979a42 X-Filterd-Recvd-Size: 5200 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf24.hostedemail.com (Postfix) with ESMTP for ; Tue, 15 Oct 2019 11:25:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=BMRUuE9WEojEo7zCQfzxeoNK1ZofSh/Zst48KMC/52M=; b=noqRsi9+rnPjlXBTOnszTLUZh ouAnT8OYsA5nr8H4HZdykhLKt8yRVTSZ1PXReq0modEUoyUaDT/rzjDCUeQhUhXejVrp1nSJS0KeK a2g7+FsF+GXd9fFiD96vtePQ+PPBJIBf+ldLMyLUksHn8C9Hz1dr2XskKT4NVfCzPJIqhsk9QcRkX OJur7Wi2lnqg3VINa1ZoXD6f/sgp0hjloylnVypsmdyNXzRZ9XHc1Bl8Ph9XMS1quUQm3E6zOJcU7 Qs5QdIBtq/u4ehVVSRtNZ/Y9Gnq8DpZbwiFjGauaYHn128A0L1vU6D/F7MMHhpb6wIn5O47mEEWND LCoFNYi2Q==; Received: from willy by bombadil.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1iKKwL-00089j-7h; Tue, 15 Oct 2019 11:24:33 +0000 Date: Tue, 15 Oct 2019 04:24:33 -0700 From: Matthew Wilcox To: Anshuman Khandual Cc: Michal Hocko , akpm@linux-foundation.org, ard.biesheuvel@linaro.org, broonie@kernel.org, christophe.leroy@c-s.fr, dan.j.williams@intel.com, dave.hansen@intel.com, davem@davemloft.net, gerald.schaefer@de.ibm.com, gregkh@linuxfoundation.org, heiko.carstens@de.ibm.com, jgg@ziepe.ca, jhogan@kernel.org, keescook@chromium.org, kirill@shutemov.name, linux@armlinux.org.uk, mark.rutland@arm.com, mike.kravetz@oracle.com, mm-commits@vger.kernel.org, mpe@ellerman.id.au, paul.burton@mips.com, paulus@samba.org, penguin-kernel@i-love.sakura.ne.jp, peterz@infradead.org, ralf@linux-mips.org, rppt@linux.vnet.ibm.com, schowdary@nvidia.com, schwidefsky@de.ibm.com, Steven.Price@arm.com, tglx@linutronix.de, vbabka@suse.cz, vgupta@synopsys.com, yamada.masahiro@socionext.com, linux-mm@kvack.org Subject: Re: + mm-hugetlb-make-alloc_gigantic_page-available-for-general-use.patch added to -mm tree Message-ID: <20191015112433.GC32665@bombadil.infradead.org> References: <20191011202932.GZoUOoURm%akpm@linux-foundation.org> <20191014121730.GE317@dhcp22.suse.cz> <20191014202926.GZ32665@bombadil.infradead.org> <0bcb05da-5775-99d8-46d9-3140b6e1dd63@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <0bcb05da-5775-99d8-46d9-3140b6e1dd63@arm.com> User-Agent: Mutt/1.12.1 (2019-06-15) X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, Oct 15, 2019 at 03:00:49PM +0530, Anshuman Khandual wrote: > On 10/15/2019 01:59 AM, Matthew Wilcox wrote: > > On Mon, Oct 14, 2019 at 02:17:30PM +0200, Michal Hocko wrote: > >> On Fri 11-10-19 13:29:32, Andrew Morton wrote: > >>> alloc_gigantic_page() implements an allocation method where it scans over > >>> various zones looking for a large contiguous memory block which could not > >>> have been allocated through the buddy allocator. A subsequent patch which > >>> tests arch page table helpers needs such a method to allocate PUD_SIZE > >>> sized memory block. In the future such methods might have other use cases > >>> as well. So alloc_gigantic_page() has been split carving out actual > >>> memory allocation method and made available via new > >>> alloc_gigantic_page_order(). > >> > >> You are exporting a helper used for hugetlb internally. Is this really > >> what is needed? I haven't followed this patchset but don't you simply > >> need a generic 1GB allocator? If yes then you should be looking at > >> alloc_contig_range. > > > > He actually doesn't need to allocate any memory at all. All he needs is > > the address of a valid contiguous PUD-sized chunk of memory. > > > > We had already discussed about the benefits of allocated memory over > synthetic pfn potentially derived from a kernel text symbol. More > over we are not adding any new helper or new code for this purpose, > but instead just trying to reuse code which is already present. Yes, and I'm pretty sure you're just wrong. But I don't know that you're wrong for all architectures. Re-reading that, I'm still not sure you understood what I was suggesting, so I'll say it again differently. Look up a kernel symbol, something like kernel_init(). This will have a virtual address upon which it is safe to call virt_to_pfn(). Let's presume it's in PFN 0x12345678. Use 0x12345678 as the PFN for your PTE level tests. Then clear the bottom (eg) 9 bits from it and use 0x1234400 for your PMD level tests. Then clear the bottom 18 bits from it and use 0x12300000 for your PUD level tests. I don't think it matters whether there's physical memory at PFN 0x12300000 or not. The various p?d_* functions should work as long as the PFN is in some plausible range. I gave up arguing because you seemed uninterested in this approach, but now that Michal is pointing out that your approach is all wrong, maybe you'll listen.