summary refs log tree commit diff stats
path: root/include/standard-headers/linux/input-event-codes.h
diff options
context:
space:
mode:
authorAlejandro Jimenez <alejandro.j.jimenez@oracle.com>2025-09-19 21:35:04 +0000
committerMichael S. Tsirkin <mst@redhat.com>2025-10-05 16:13:01 -0400
commitfe0a58f770330165c885d323632541c4d9f2983d (patch)
treec03486b695950f3892ea3a06f412b7dbbdaba019 /include/standard-headers/linux/input-event-codes.h
parenta1c97c395729164747f2f30e9b8ec5d497af95c9 (diff)
downloadfocaccia-qemu-fe0a58f770330165c885d323632541c4d9f2983d.tar.gz
focaccia-qemu-fe0a58f770330165c885d323632541c4d9f2983d.zip
amd_iommu: Use iova_tree records to determine large page size on UNMAP
Keep a record of mapped IOVA ranges per address space, using the iova_tree
implementation. Besides enabling optimizations like avoiding unnecessary
notifications, a record of existing <IOVA, size> mappings makes it possible
to determine if a specific IOVA is mapped by the guest using a large page,
and adjust the size when notifying UNMAP events.

When unmapping a large page, the information in the guest PTE encoding the
page size is lost, since the guest clears the PTE before issuing the
invalidation command to the IOMMU. In such case, the size of the original
mapping can be retrieved from the iova_tree and used to issue the UNMAP
notification. Using the correct size is essential since the VFIO IOMMU
Type1v2 driver in the host kernel will reject unmap requests that do not
fully cover previous mappings.

Signed-off-by: Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-ID: <20250919213515.917111-12-alejandro.j.jimenez@oracle.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'include/standard-headers/linux/input-event-codes.h')
0 files changed, 0 insertions, 0 deletions