Re: [EXTERNAL] Re: [PATCH v3] mm/thp: fix "mm: thp: kill __transhuge_page_enabled()"

From: Matthew Wilcox
Date: Fri Aug 25 2023 - 08:50:12 EST


On Fri, Aug 25, 2023 at 09:59:23AM +0200, David Hildenbrand wrote:
> Especially, we do have bigger ->huge_fault changes coming up:
>
> https://lkml.kernel.org/r/20230818202335.2739663-1-willy@xxxxxxxxxxxxx
>
> If the driver is not in the tree, people don't care.
>
> You really should try upstreaming that driver.
>
>
> So this patch here adds complexity (which I don't like) in order to keep an
> OOT driver working -- possibly for a short time. I'm tempted to say "please
> fix your driver to not use huge faults in that scenario, it is no longer
> supported".
>
> But I'm just about to vanish for 1.5 week into vacation :)
>
> @Willy, what are your thoughts?

Fundamentally there was a bad assumption with the original patch --
it assumed that the only reason to support ->huge_fault was for DAX,
and that's not true. It's just that the only drivers in-tree which
support ->huge_fault do so in order to support DAX.

Keeping a driver out of tree is always a risky and costly proposition.
It will continue to be broken by core kernel changes, particularly
if/when it does unusual things.

I think the complexity is entirely on us. I think there's a simpler way
to handle the problem, but I'd start by turning all of this "admin and
app get to control when THP are used" nonsense into no-ops.