Thread (89 messages) 89 messages, 12 authors, 2025-09-11

Re: [PATCH v10 00/13] khugepaged: mTHP support

From: Lorenzo Stoakes <hidden>
Date: 2025-08-26 10:56:34
Also in: linux-doc, linux-mm, lkml

On Fri, Aug 22, 2025 at 09:03:41PM +0530, Dev Jain wrote:
On 22/08/25 8:19 pm, Lorenzo Stoakes wrote:
quoted
On Fri, Aug 22, 2025 at 04:10:35PM +0200, David Hildenbrand wrote:
quoted
quoted
quoted
Once could also easily support the value 255 (HPAGE_PMD_NR / 2- 1), but not sure
if we have to add that for now.
Yeah not so sure about this, this is a 'just have to know' too, and yes you
might add it to the docs, but people are going to be mightily confused, esp if
it's a calculated value.

I don't see any other way around having a separate tunable if we don't just have
something VERY simple like on/off.
Yeah, not advocating that we add support for other values than 0/511,
really.
Yeah I'm fine with 0/511.
quoted
quoted
Also the mentioned issue sounds like something that needs to be fixed elsewhere
honestly in the algorithm used to figure out mTHP ranges (I may be wrong - and
happy to stand corrected if this is somehow inherent, but reallly feels that
way).
I think the creep is unavoidable for certain values.

If you have the first two pages of a PMD area populated, and you allow for
at least half of the #PTEs to be non/zero, you'd collapse first a
order-2 folio, then and order-3 ... until you reached PMD order.
Feels like we should be looking at this in reverse? What's the largest, then
next largest, then etc.?

Surely this is the sensible way of doing it?
What David means to say is, for example, suppose all orders are enabled,
and we fail to collapse for order-9, then order-8, then order-7, and so on,
*only* because the distribution of ptes did not obey the scaled max_ptes_none.
Let order-4 collapse succeed.
Ah so it is the overhead of this that's the problem?

All roads lead to David's suggestion imo.

quoted
By having 0/511 we can really simplify the 'scaling' logic too which would be
fantastic! :)
FWIW here was my implementation of this thing, for ease of everyone:
https://lore.kernel.org/all/20250211111326.14295-17-dev.jain@arm.com/ (local)
That's fine, but I really think we should just replace all this stuff with a
boolean, and change the interface to max_ptes to set boolean if 511, or clear if
0.

Cheers, Lorenzo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help