On Mon, 2026-10-12 at 16:13 +0100, David Woodhouse wrote: > On Mon, 2026-10-12 at 15:07 +0000, Fred Griffoul wrote: > > Devices are different, because a device may not support > > faults. So the provider also revokes the range on the target once it > > owns the frames, and iommufd maps them right away. In other words, a > > revoke means that the frames behind a range changed, whether they went > > away or arrived. > > That would map to the IOMMUFD 'REPLACE' operation that hitlessly > replaces a PTE, but does anyone actually need that?
No, not on the target. Before the move the child has nothing mapped in that range, so when the frames arrive iommufd just maps them. That is a plain map, not a REPLACE. > As I said, assume that the "crappy devices can't take faults and need a > scratch patch" issue is dealt with *elsewhere* and not relevant to the > guest_memfd/memprovider work. That's purely a quirk on a given IOAS > within iommufd. Agreed. The replace is only needed on the source, where the frames go away and a device that cannot fault must see the scratch page instead. With that quirk on the IOAS, iommufd does it, and the provider does not need to know about it. Thanks, Fred

