[PATCH 1/3] mm: Move arch_do_swap_page() call to before swap_free()

David Hildenbrand david at redhat.com
Wed May 17 01:30:19 PDT 2023


>> Would the idea be to fail swap_readpage() on the one that comes last,
>> simply retrying to lookup the page?
> 
> The idea would be that T2's arch_swap_readpage() could potentially not
> find tags if it ran after swap_free(), so T2 would produce a page
> without restored tags. But that wouldn't matter, because T1 reaching
> swap_free() means that T2 will follow the goto at [1] after waiting
> for T1 to unlock at [2], and T2's page will be discarded.

Ah, right.

> 
>> This might be a naive question, but how does MTE play along with shared
>> anonymous pages?
> 
> It should work fine. shmem_writepage() calls swap_writepage() which
> calls arch_prepare_to_swap() to write the tags. And
> shmem_swapin_folio() has a call to arch_swap_restore() to restore
> them.

Sorry, I meant actual anonymous memory pages, not shmem. Like, anonymous 
pages that are COW-shared due to fork() or KSM.

How does MTE, in general, interact with that? Assume one process ends up 
modifying the tags ... and the page is COW-shared with a different 
process that should not observe these tag modifications.

-- 
Thanks,

David / dhildenb




More information about the linux-arm-kernel mailing list