mbox series

[XEN,v4,0/5] x86/iommu: Drop IOMMU support when cx16 isn't supported

Message ID cover.1713174878.git.teddy.astie@vates.tech (mailing list archive)
Headers show
Series x86/iommu: Drop IOMMU support when cx16 isn't supported | expand

Message

Teddy Astie April 15, 2024, 12:16 p.m. UTC
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(-)

Comments

Teddy Astie April 15, 2024, 1:58 p.m. UTC | #1
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