[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210125120827.GA29289@linux>
Date: Mon, 25 Jan 2021 13:08:32 +0100
From: Oscar Salvador <osalvador@...e.de>
To: David Hildenbrand <david@...hat.com>
Cc: Muchun Song <songmuchun@...edance.com>, corbet@....net,
mike.kravetz@...cle.com, tglx@...utronix.de, mingo@...hat.com,
bp@...en8.de, x86@...nel.org, hpa@...or.com,
dave.hansen@...ux.intel.com, luto@...nel.org, peterz@...radead.org,
viro@...iv.linux.org.uk, akpm@...ux-foundation.org,
paulmck@...nel.org, mchehab+huawei@...nel.org,
pawan.kumar.gupta@...ux.intel.com, rdunlap@...radead.org,
oneukum@...e.com, anshuman.khandual@....com, jroedel@...e.de,
almasrymina@...gle.com, rientjes@...gle.com, willy@...radead.org,
mhocko@...e.com, song.bao.hua@...ilicon.com,
naoya.horiguchi@....com, duanxiongchun@...edance.com,
linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-mm@...ck.org, linux-fsdevel@...r.kernel.org
Subject: Re: [PATCH v13 09/12] mm: hugetlb: add a kernel parameter
hugetlb_free_vmemmap
On Mon, Jan 25, 2021 at 12:43:23PM +0100, David Hildenbrand wrote:
> > - if (end - start < PAGES_PER_SECTION * sizeof(struct page))
> > + if (is_hugetlb_free_vmemmap_enabled() ||
> > + end - start < PAGES_PER_SECTION * sizeof(struct page))
>
> This looks irresponsible. You ignore any altmap, even though current
> altmap users (ZONE_DEVICE) will not actually result in applicable
> vmemmaps that huge pages could ever use.
>
> Why do you ignore the altmap completely? This has to be properly
> documented, but IMHO it's not even the right approach to mess with
> altmap here.
The goal was not to ignore altmap but to disable PMD mapping sections
when the feature was enabled.
Shame on me I did not notice that with this, altmap will be ignored.
Something like below maybe:
int __meminit vmemmap_populate(unsigned long start, unsigned long end, int node,
struct vmem_altmap *altmap)
{
int err;
bool populate_base_pages = false;
if ((end - start < PAGES_PER_SECTION * sizeof(struct page)) ||
(is_hugetlb_free_vmemmap_enabled() && !altmap))
populate_base_pages = true;
if (populate_base_pages) {
err = vmemmap_populate_basepages(start, end, node, NULL);
} else if (boot_cpu_has(X86_FEATURE_PSE)) {
....
>
> --
> Thanks,
>
> David / dhildenb
>
>
--
Oscar Salvador
SUSE L3
Powered by blists - more mailing lists