Re: [PATCHv7 13/18] mm: Drop fake head checks

From: Kiryl Shutsemau

Date: Tue Oct 27 2026 - 08:42:42 EST


On Tue, Oct 27, 2026 at 01:05:58PM +0100, David Hildenbrand (Arm) wrote:
> > Writing this, I just realized that we have another option -- map the
> > shared tail page writable. A failing LOCK CMPXCHG writes back the value
> > it read, and the get never changes a zero refcount, so the race becomes
> > harmless. The cost is the protection: the page is shared by every
> > hugetlb folio of that order in the zone, so a stray write to any tail
> > silently corrupts all of them instead of oopsing.
>
> Right. Without HVO we would just corrupt pages in the single folio (which is
> also not nice).
>
> I'm also questioning whether we need this RO protection all the time active.

What do you have in mind? RO only under a debug option, or switching the
tail page to RO some time after the remap?

If it is the delay, a grace period alone does not close the race. We
would need rcu_read_lock() back around the get, and then it is the old
scheme with the wait taken off the allocation path.

--
Kiryl Shutsemau / Kirill A. Shutemov