adfd373820
Introduce a new type for reserved region. This corresponds to directly mapped regions which are known to be relaxable in some specific conditions, such as device assignment use case. Well known examples are those used by USB controllers providing PS/2 keyboard emulation for pre-boot BIOS and early BOOT or RMRRs associated to IGD working in legacy mode. Since commitc875d2c1b8
("iommu/vt-d: Exclude devices using RMRRs from IOMMU API domains") and commit18436afdc1
("iommu/vt-d: Allow RMRR on graphics devices too"), those regions are currently considered "safe" with respect to device assignment use case which requires a non direct mapping at IOMMU physical level (RAM GPA -> HPA mapping). Those RMRRs currently exist and sometimes the device is attempting to access it but this has not been considered an issue until now. However at the moment, iommu_get_group_resv_regions() is not able to make any difference between directly mapped regions: those which must be absolutely enforced and those like above ones which are known as relaxable. This is a blocker for reporting severe conflicts between non relaxable RMRRs (like MSI doorbells) and guest GPA space. With this new reserved region type we will be able to use iommu_get_group_resv_regions() to enumerate the IOVA space that is usable through the IOMMU API without introducing regressions with respect to existing device assignment use cases (USB and IGD). Signed-off-by: Eric Auger <eric.auger@redhat.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
36 lines
1.5 KiB
Plaintext
36 lines
1.5 KiB
Plaintext
What: /sys/kernel/iommu_groups/
|
|
Date: May 2012
|
|
KernelVersion: v3.5
|
|
Contact: Alex Williamson <alex.williamson@redhat.com>
|
|
Description: /sys/kernel/iommu_groups/ contains a number of sub-
|
|
directories, each representing an IOMMU group. The
|
|
name of the sub-directory matches the iommu_group_id()
|
|
for the group, which is an integer value. Within each
|
|
subdirectory is another directory named "devices" with
|
|
links to the sysfs devices contained in this group.
|
|
The group directory also optionally contains a "name"
|
|
file if the IOMMU driver has chosen to register a more
|
|
common name for the group.
|
|
Users:
|
|
|
|
What: /sys/kernel/iommu_groups/reserved_regions
|
|
Date: January 2017
|
|
KernelVersion: v4.11
|
|
Contact: Eric Auger <eric.auger@redhat.com>
|
|
Description: /sys/kernel/iommu_groups/reserved_regions list IOVA
|
|
regions that are reserved. Not necessarily all
|
|
reserved regions are listed. This is typically used to
|
|
output direct-mapped, MSI, non mappable regions. Each
|
|
region is described on a single line: the 1st field is
|
|
the base IOVA, the second is the end IOVA and the third
|
|
field describes the type of the region.
|
|
|
|
What: /sys/kernel/iommu_groups/reserved_regions
|
|
Date: June 2019
|
|
KernelVersion: v5.3
|
|
Contact: Eric Auger <eric.auger@redhat.com>
|
|
Description: In case an RMRR is used only by graphics or USB devices
|
|
it is now exposed as "direct-relaxable" instead of "direct".
|
|
In device assignment use case, for instance, those RMRR
|
|
are considered to be relaxable and safe.
|