Re: [PATCH] KVM: SEV: drop FOLL_LONGTERM for encrypted region registration
From: David Hildenbrand (Arm)
Date: Wed Jul 01 2026 - 12:25:45 EST
On 7/1/26 16:45, Pankaj Gupta wrote:
> commit 7e066cb9b71a ("KVM: SEV: Use long-term pin when registering encrypted memory regions")
> added FOLL_LONGTERM to sev_mem_enc_register_region() so anonymous guest RAM is
> migrated out of MIGRATE_CMA/ZONE_MOVABLE before a long term pin. This breaks
> virtio-pmem which has file backed (MAP_SHARED) host mapping where GUP rejects
> FOLL_WRITE | FOLL_LONGTERM since:
>
> commit 8ac268436e6d ("mm/gup: disallow FOLL_LONGTERM GUP-nonfast writing to file-backed mappings")
> commit a6e79df92e4a ("mm/gup: disallow FOLL_LONGTERM GUP-fast writing to file-backed mappings").
>
> Drop FOLL_LONGTERM when registering encrypted memory regions and restore
> the previous behavior.
But that breaks the original issue of breaking ZONE_MOVABLE/CMA?
If it is a longterm pin, it must use FOLL_LONGTERM. :/
I assume we fail in check_vma_flags()
if ((gup_flags & FOLL_LONGTERM) && vma_is_fsdax(vma))
return -EOPNOTSUPP;
IIRC, fsdax cannot tolerate unbounded pins. Is that the case we are running into?
How does vfio deal with that? (does it?)
--
Cheers,
David