Re: [PATCH v1] x86/mm/pat: fix VM_PAT handling in COW mappings

From: David Hildenbrand
Date: Tue Mar 12 2024 - 15:38:34 EST


On 12.03.24 20:22, Matthew Wilcox wrote:
On Tue, Mar 12, 2024 at 07:11:18PM +0100, David Hildenbrand wrote:
PAT handling won't do the right thing in COW mappings: the first PTE
(or, in fact, all PTEs) can be replaced during write faults to point at
anon folios. Reliably recovering the correct PFN and cachemode using
follow_phys() from PTEs will not work in COW mappings.

I guess the first question is: Why do we want to support COW mappings
of VM_PAT areas? What breaks if we just disallow it?

Well, that was my first approach. Then I decided to be less radical (IOW make my life easier by breaking less user space) and "fix it" with minimal effort.

Chances of breaking some weird user space is possible, although I believe for most such mappings MAP_PRIVATE doesn't make too much sense sense.

Nasty COW support for VM_PFNMAP mappings dates back forever. So does PAT support.

I can try finding digging through some possible user space users tomorrow.

--
Cheers,

David / dhildenb