Re: [PATCH v2 3/5] mm: Default implementation of arch_wants_pte_order()

From: Ryan Roberts
Date: Fri Jul 07 2023 - 06:03:04 EST


On 06/07/2023 20:33, Matthew Wilcox wrote:
> On Tue, Jul 04, 2023 at 08:07:19PM -0600, Yu Zhao wrote:
>>> - On arm64 when the process has marked the VMA for THP (or when
>>> transparent_hugepage=always) but the VMA does not meet the requirements for a
>>> PMD-sized mapping (or we failed to allocate, ...) then I'd like to map using
>>> contpte. For 4K base pages this is 64K (order-4), for 16K this is 2M (order-7)
>>> and for 64K this is 2M (order-5). The 64K base page case is very important since
>>> the PMD size for that base page is 512MB which is almost impossible to allocate
>>> in practice.
>>
>> Which case (server or client) are you focusing on here? For our client
>> devices, I can confidently say that 64KB has to be after 16KB, if it
>> happens at all. For servers in general, I don't know of any major
>> memory-intensive workloads that are not THP-aware, i.e., I don't think
>> "VMA does not meet the requirements" is a concern.
>
> It sounds like you've done some measurements, and I'd like to understand
> those a bit better. There are a number of factors involved:

I'm not sure if that's a question to me or Yu? I haven't personally done any
measurements for the 64K base page case. But Arm has a partner that is pushing
for this. I'm hoping to see some test results from them posted publicly in the
coming weeks. See [1] for more explanation on the rationale.

[1]
https://lore.kernel.org/linux-mm/4d4c45a2-0037-71de-b182-f516fee07e67@xxxxxxx/T/#m8a7c4b71f94224ec3fe6d0a407f48d74c789ba4f

>
> - A larger page size shrinks the length of the LRU list, so systems
> which see heavy LRU lock contention benefit more
> - A larger page size has more internal fragmentation, so we run out of
> memory and have to do reclaim more often (and maybe workload which
> used to fit in DRAM now do not)
> (probably others; i'm not at 100% right now)
>
> I think concerns about "allocating lots of order-2 folios makes it harder
> to allocate order-4 folios" are _probably_ not warranted (without data
> to prove otherwise). All anonymous memory is movable, so our compaction
> code should be able to create larger order folios.
>