On Thu, Jun 01, 2023 at 02:33:19PM +0800, Zhenzhong Duan wrote:
> diff --git a/include/exec/memory.h b/include/exec/memory.h
> index eecc3eec6702..9a523ef62a94 100644
> --- a/include/exec/memory.h
> +++ b/include/exec/memory.h
> @@ -441,9 +441,9 @@ struct IOMMUMemoryRegionClass {
> * call the IOMMU translate method for every page in the address space
> * with flag == IOMMU_NONE and then call the notifier if translate
> * returns a valid mapping. If this method is implemented then it
> - * overrides the default behaviour, and must provide the full semantics
> - * of memory_region_iommu_replay(), by calling @notifier for every
> - * translation present in the IOMMU.
> + * overrides the default behavior, and must provide corresponding
> + * semantics depending on notifier's type, e.g. IOMMU_NOTIFIER_MAP,
> + * notify changed entries; IOMMU_NOTIFIER_FULL_MAP, notify full entries.
IIUC it was always trying to notify all existing entries only, rather than
changed entries. VT-d used to unmap all so it was also true.
--
Peter Xu