On Wed, Aug 06, 2025 at 10:09:30AM -0700, Suren Baghdasaryan wrote:
On Wed, Aug 6, 2025 at 9:56 AM Peter Xu peterx@redhat.com wrote:
On Wed, Aug 06, 2025 at 08:40:15AM -0700, Suren Baghdasaryan wrote:
When UFFDIO_MOVE is used with UFFDIO_MOVE_MODE_ALLOW_SRC_HOLES and it
The migration entry can appear with/without ALLOW_SRC_HOLES, right? Maybe drop this line?
Yes, you are right. I'll update.
If we need another repost, the subject can further be tailored to mention migration entry too rather than non-present. IMHO that's clearer on explaining the issue this patch is fixing (e.g. a valid transhuge THP can also have present bit cleared).
encounters a non-present PMD (migration entry), it proceeds with folio access even though the folio is not present. Add the missing check and
IMHO "... even though folio is not present" is pretty vague. Maybe "... even though it's a swap entry"? Fundamentally it's because of the different layouts of normal THP v.s. a swap entry, hence pmd_folio() should not be used on top of swap entries.
Well, technically a migration entry is a non_swap_entry(), so calling migration entries "swap entries" is confusing to me. Any better wording we can use or do you think that's ok?
The more general definition of "swap entry" should follow what swp_entry_t is defined, where, for example, is_migration_entry() itself takes swp_entry_t as input. So it should be fine, but I agree it's indeed confusing.
If we want to make it clearer, IMHO we could rename non_swap_entry() instead to is_swapfile_entry() / is_real_swap_entry() / ... but that can be discussed separately. Here, if we want to make it super accurate, we could also use "swp_entry_t" instead of "swap entry", that'll be 100% accurate.
Thanks,