Le 15/04/2024 à 14:15, Teddy Astie a écrit :
> All hardware that supports VT-d/AMD-Vi that exists also supports cx16 (aside
> specifically crafted virtual machines).
>
> Some IOMMU code paths in Xen consider cases where VT-d/AMD-Vi is supported
> while cx16 isn't, those paths may be bugged and are barely tested, dead code
> in practice.
>
> Disable IOMMU in case we have IOMMU hardware but no cx16, then cleanup
> no-cx16 handling logic from VT-d and AMD-Vi drivers. Also disable
> interrupt remapping that also relies on cx16.
>
> Teddy Astie (5):
>    VT-d: Disable IOMMU if cx16 isn't supported
>    AMD-Vi: Disable IOMMU if cx16 isn't supported
>    VT-d: Cleanup MAP_SINGLE_DEVICE and related code
>    VT-d: Disable intrerrupt remapping if cx16 is not supported
>    AMD-Vi: Disable intrerrupt remapping if cx16 is not supported
>
>   xen/drivers/passthrough/amd/iommu_intr.c    |  6 ++
>   xen/drivers/passthrough/amd/iommu_map.c     | 42 ++++------
>   xen/drivers/passthrough/amd/pci_amd_iommu.c |  6 ++
>   xen/drivers/passthrough/vtd/intremap.c      | 70 +++++-----------
>   xen/drivers/passthrough/vtd/iommu.c         | 92 +++++++--------------
>   xen/drivers/passthrough/vtd/vtd.h           |  5 +-
>   6 files changed, 77 insertions(+), 144 deletions(-)
>

Here is the patch history that got lost for some reason in this cover.

Changed in v2:

  * Added cleanup no-cx16 code for x2APIC
  * Fixed commit and code formatting
  * Added missing Suggested-by note

Changed in v3:

  * Use -ENODEV instead of -ENOSYS.

Changed in v4:

  * Reworded "Disable IOMMU if cx16 isn't supported"
  * Moved interrupt remapping cleanup in separate patches
  * Check cx16 for interrupt remapping in driver's callbacks rather than
in x2apic_bsp_setup

Teddy

---


Teddy Astie | Vates XCP-ng Intern

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


Reply via email to