From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pa0-f54.google.com (mail-pa0-f54.google.com [209.85.220.54]) by kanga.kvack.org (Postfix) with ESMTP id 00C276B0070 for ; Tue, 22 Apr 2014 17:55:48 -0400 (EDT) Received: by mail-pa0-f54.google.com with SMTP id lf10so63709pab.13 for ; Tue, 22 Apr 2014 14:55:48 -0700 (PDT) Received: from mail.linuxfoundation.org (mail.linuxfoundation.org. [140.211.169.12]) by mx.google.com with ESMTP id ip5si116425pbd.125.2014.04.22.14.55.47 for ; Tue, 22 Apr 2014 14:55:48 -0700 (PDT) Date: Tue, 22 Apr 2014 14:55:46 -0700 From: Andrew Morton Subject: Re: [PATCH v3 0/5] hugetlb: add support gigantic page allocation at runtime Message-Id: <20140422145546.7e1ddb763072edaa286736f9@linux-foundation.org> In-Reply-To: <20140422173726.738d0635@redhat.com> References: <1397152725-20990-1-git-send-email-lcapitulino@redhat.com> <20140417160110.3f36b972b25525fbbe23681b@linux-foundation.org> <20140422173726.738d0635@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org List-ID: To: Luiz Capitulino Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, mtosatti@redhat.com, aarcange@redhat.com, mgorman@suse.de, andi@firstfloor.org, davidlohr@hp.com, rientjes@google.com, isimatu.yasuaki@jp.fujitsu.com, yinghai@kernel.org, riel@redhat.com, n-horiguchi@ah.jp.nec.com, kirill@shutemov.name On Tue, 22 Apr 2014 17:37:26 -0400 Luiz Capitulino wrote: > On Thu, 17 Apr 2014 16:01:10 -0700 > Andrew Morton wrote: > > > On Thu, 10 Apr 2014 13:58:40 -0400 Luiz Capitulino wrote: > > > > > The HugeTLB subsystem uses the buddy allocator to allocate hugepages during > > > runtime. This means that hugepages allocation during runtime is limited to > > > MAX_ORDER order. For archs supporting gigantic pages (that is, page sizes > > > greater than MAX_ORDER), this in turn means that those pages can't be > > > allocated at runtime. > > > > Dumb question: what's wrong with just increasing MAX_ORDER? > > To be honest I'm not a buddy allocator expert and I'm not familiar with > what is involved in increasing MAX_ORDER. What I do know though is that it's > not just a matter of increasing a macro's value. For example, for sparsemem > support we have this check (include/linux/mmzone.h:1084): > > #if (MAX_ORDER - 1 + PAGE_SHIFT) > SECTION_SIZE_BITS > #error Allocator MAX_ORDER exceeds SECTION_SIZE > #endif > > I _guess_ it's because we can't allocate more pages than what's within a > section on sparsemem. Can sparsemem and the other stuff be changed to > accommodate a bigger MAX_ORDER? I don't know. Is it worth it to increase > MAX_ORDER and do all the required changes, given that a bigger MAX_ORDER is > only useful for HugeTLB and the archs supporting gigantic pages? I'd guess not. afacit we'd need to increase SECTION_SIZE_BITS to 29 or more to accommodate 1G MAX_ORDER. I assume this means that some machines with sparse physical memory layout may not be able to use all (or as much) of the physical memory. Perhaps Yinghai can advise? I do think we should fully explore this option before giving up and adding new special-case code. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org