On 28.10.25 19:09, Lorenzo Stoakes wrote:
(It'd be good if we could keep all the 'solutions' in one thread as I made a
detailed reply there and now all that will get lost across two threads but
*sigh* never mind. Insert rant about email development here.)

Yeah, I focused in my other mails on things to avoid creep while allowing for mTHP collapse.


On Tue, Oct 28, 2025 at 06:56:10PM +0100, David Hildenbrand wrote:
[...]


towards David's earlier simplified approach:
        max_ptes_none == 511 -> collapse mTHP always
        max_ptes_none != 511 -> collapse mTHP only if all PTEs are non-none/zero

Pretty sure David's suggestion was that max_ptes_none would literally get set to
511 if you specified 511, or 0 if you specified anything else.

We had multiple incarnations of this approach, but the first one really was:

max_ptes_none == 511 -> collapse mTHP always

But won't 511 mean we just 'creep' to maximum collapse again? Does that solve
anything?

No creep, because you'll always collapse.

Creep only happens if you wouldn't collapse a PMD without prior mTHP collapse, but suddenly would in the same scenario simply because you had prior mTHP collapse.

At least that's my understanding.


max_ptes_none == 0 -> collapse mTHP only if all non-none/zero

And for the intermediate values

(1) pr_warn() when mTHPs are enabled, stating that mTHP collapse is not
supported yet with other values

It feels a bit much to issue a kernel warning every time somebody twiddles that
value, and it's kind of against user expectation a bit.

pr_warn_once() is what I meant.


But maybe it's the least worst way of communicating things. It's still
absolutely gross.

(2) treat it like max_ptes_none == 0 or (maybe better?) just disable mTHP
collapse

Yeah disabling mTHP collapse for these values seems sane, but it also seems that
we should be capping for this to work correctly no?

I didn't get the interaction with capping, can you elaborate?


Also I think all this probably violates requirements of users who want to have
different behaviour for mTHP and PMD THP.

The default is 511 so we're in creep territory even with the damn default :)

I don't think so, but maybe I am wrong.


--
Cheers

David / dhildenb


Reply via email to