On 22.12.21 00:59, Jason Gunthorpe wrote:
On Tue, Dec 21, 2021 at 06:40:30PM +0100, David Hildenbrand wrote:
What adds complexity to correctly maintain the "exclusive" state are at least:
- KSM (might be harder, have to think about it)
I know little about it, but isn't KSM like fork where it is trying to WP pages with the intention of copying them? Shouldn't KSM completely reject WP'ing a page that is under any kind of writable GUP?
I think KSM will, similar to fork(), always have to try removing PageAnonExclusive() while synchronizing against concurrent GUP pins. If that fails, the page cannot be converted to KSM and consequently not be shared.
That will need some rework of KSM AFAIU, but shouldn't be impossible to do.