OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [PATCH v3 0/9] virtio-iommu: Support page tables


Add page table support for Arm SMMUv3, Intel VT-d, RISC-V IOMMU and AMD
IOMMU to the virtio-iommu specification. The main advantage of page tables
over the MAP/UNMAP interface is sharing virtual address spaces (SVA aka
SVM), where an endpoint with PASID and I/O page fault support can directly
access process address spaces, and applications don't have to explicitly
deal with DMA buffers. Using page tables for regular DMA is also faster
than MAP/UNMAP because it removes the context switch on MAP (while UNMAP
is replaced by INVALIDATE), but requires pinning all guest memory which
prevents the host from over-committing resources. Some endpoints support
I/O page faults (PCIe PRI) which removes the need for pinning guest
memory, but also has a runtime cost.

One virtio-iommu instance can provide both interfaces: page tables for
endpoints that support unpinned memory, and MAP/UNMAP for the others. 

Find more details and rationale on the previous posting [1]. Since v2,
I've updated the VT-d support following Tina's review (see changelog on
individual patches), and some small fixes.

You can find a PDF with these changes and diff colors here:

https://jpbrucker.net/virtio-iommu/spec/virtio-iommu-pt-v1.7-diff.pdf
https://jpbrucker.net/virtio-iommu/spec/virtio-iommu-pt-v1.7.pdf
https://jpbrucker.net/git/virtio/log/?h=viommu/tables

[1] https://lists.oasis-open.org/archives/virtio-comment/202310/msg00018.html

Jean-Philippe Brucker (8):
  virtio-iommu: Add ATTACH_TABLE request
  virtio-iommu: Add INVALIDATE request
  virtio-iommu: Add Arm SMMUv3 support
  virtio-iommu: Add PASID field to DETACH
  virtio-iommu: Add RISC-V page tables
  virtio-iommu: Add AMD page tables
  virtio-iommu: Add VIRTIO_IOMMU_RESV_MEM_T_IDENTITY
  virtio-iommu: Add PASID information to fault report

Tina Zhang (1):
  virtio-iommu: Add VT-d IO page table

 device-types/iommu/description.tex        | 357 ++++++++++++++++++++--
 device-types/iommu/device-conformance.tex |   3 +
 device-types/iommu/driver-conformance.tex |   3 +
 device-types/iommu/pgtable-amd.tex        | 171 +++++++++++
 device-types/iommu/pgtable-arm.tex        |  78 +++++
 device-types/iommu/pgtable-intel.tex      | 118 +++++++
 device-types/iommu/pgtable-riscv.tex      |  92 ++++++
 introduction.tex                          |   9 +
 8 files changed, 804 insertions(+), 27 deletions(-)
 create mode 100644 device-types/iommu/pgtable-amd.tex
 create mode 100644 device-types/iommu/pgtable-arm.tex
 create mode 100644 device-types/iommu/pgtable-intel.tex
 create mode 100644 device-types/iommu/pgtable-riscv.tex

-- 
2.43.0



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]