[RFC v8 16/25] vfio: add bind stage-1 page table support

2020-07-12 Thread Liu Yi L
Cc: David Gibson Cc: Alex Williamson Signed-off-by: Liu Yi L --- hw/iommu/host_iommu_context.c | 57 +- hw/vfio/common.c | 58 ++- include/hw/iommu/host_iommu_context.h | 19 +++- 3 files

[RFC v8 11/25] vfio/common: provide PASID alloc/free hooks

2020-07-12 Thread Liu Yi L
This patch defines vfio_host_iommu_context_info, implements the PASID alloc/free hooks defined in HostIOMMUContextClass. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Alex Williamson Signed-off-by: Liu Yi L --- hw/vfio/common.c

[RFC v8 09/25] hw/pci: introduce pci_device_set/unset_iommu_context()

2020-07-12 Thread Liu Yi L
ntext() to set/unset HostIOMMUContext for a given PCIe device (VFIO case). Caller of set should fail if set operation failed. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Michael S. Tsirkin Reviewed-by: Peter Xu Signed-off-by: Liu Yi L ---

[RFC v8 15/25] intel_iommu: add PASID cache management infrastructure

2020-07-12 Thread Liu Yi L
-by: Liu Yi L --- rfcv4 (v1) -> rfcv5 (v2): *) merged this patch with former replay binding patch, makes PSI/DSI/GSI use the unified function to do cache invalidation and pasid binding replay. *) dropped pasid_cache_gen in both iommu_state and vtd_pasid_as as it is not necessary so far, we

[RFC v8 08/25] hw/iommu: introduce HostIOMMUContext

2020-07-12 Thread Liu Yi L
ID in system-wide. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Michael S. Tsirkin Signed-off-by: Liu Yi L --- hw/Makefile.objs | 1 + hw/iommu/Makefile.objs| 1 + hw/iommu/host_iommu_context.c

[RFC v8 12/25] vfio: init HostIOMMUContext per-container

2020-07-12 Thread Liu Yi L
could make use the methods provided by host iommu context. e.g. propagate requests to host iommu. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Alex Williamson Signed-off-by: Liu Yi L --- hw/vfio/common.c | 113

[RFC v8 14/25] intel_iommu: process PASID cache invalidation

2020-07-12 Thread Liu Yi L
in subsequent patches. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Reviewed-by: Peter Xu Signed-off-by: Liu Yi L --- rfcv4 (v1) -> rfcv5 (v2): *) remove vtd_pasid_cache_gsi(), vtd_pasid_cache_psi() and vtd_pasid_cache_

[RFC v8 07/25] vfio: check VFIO_TYPE1_NESTING_IOMMU support

2020-07-12 Thread Liu Yi L
Gibson Cc: Alex Williamson Signed-off-by: Liu Yi L Signed-off-by: Eric Auger Signed-off-by: Yi Sun --- hw/vfio/common.c | 37 ++--- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/hw/vfio/common.c b/hw/vfio/common.c index 89c6a25..b85fbcf 100644

[RFC v8 10/25] intel_iommu: add set/unset_iommu_context callback

2020-07-12 Thread Liu Yi L
Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 71 --- include/hw/i386/intel_iommu.h | 21 ++--- 2 files changed, 83 insertions(+), 9 deletions(-)

[RFC v8 05/25] intel_iommu: add get_iommu_attr() callback

2020-07-12 Thread Liu Yi L
Return vIOMMU attribute to caller. e.g. VFIO call via PCI layer. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 23 +++ 1 file changed, 23 insertions

[RFC v8 06/25] vfio: pass nesting requirement into vfio_get_group()

2020-07-12 Thread Liu Yi L
This patch passes the nesting requirement into vfio_get_group() to indicate whether VFIO_TYPE1_NESTING_IOMMU is required. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Alex Williamson Signed-off-by: Liu Yi L --- hw/vfio/ap.c | 2

[RFC v8 04/25] hw/pci: introduce pci_device_get_iommu_attr()

2020-07-12 Thread Liu Yi L
This patch adds pci_device_get_iommu_attr() to get vIOMMU attributes. e.g. if nesting IOMMU wanted. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Michael S. Tsirkin Signed-off-by: Liu Yi L --- hw/pci/pci.c | 35

[RFC v8 03/25] hw/pci: modify pci_setup_iommu() to set PCIIOMMUOps

2020-07-12 Thread Liu Yi L
specific operations. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Michael S. Tsirkin Reviewed-by: David Gibson Reviewed-by: Peter Xu Signed-off-by: Liu Yi L --- hw/alpha/typhoon.c | 6 +- hw/arm/smmu-common.c | 6 +- hw/hppa

[RFC v8 02/25] header file update VFIO/IOMMU vSVA APIs kernel 5.8-rc3

2020-07-12 Thread Liu Yi L
be replaced with a full header files update when the vSVA uPAPI is stable. TODO: add the note for the Linux version. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Michael S. Tsirkin Cc: Cornelia Huck Cc: Paolo Bonzini Signed-off-by: Liu Yi L --- linux-headers/linux/iommu.h

[RFC v8 00/25] intel_iommu: expose Shared Virtual Addressing to VMs

2020-07-12 Thread Liu Yi L
e IOMMUContext to abstract the connection between VFIO and vIOMMU emulators, which is a replacement of the PCIPASIDOps in RFC v1. Modify x-scalable-mode to be string option instead of adding a new option as RFC v1 did. Refined the pasid cache management --- Eric Auger (1): scri

[RFC v8 01/25] scripts/update-linux-headers: Import iommu.h

2020-07-12 Thread Liu Yi L
From: Eric Auger Update the script to import the new iommu.h uapi header. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Michael S. Tsirkin Cc: Cornelia Huck Cc: Paolo Bonzini Acked-by: Cornelia Huck Signed-off-by: Eric Auger --- scripts/update-linux-headers.sh | 2 +- 1

RE: [PATCH] intel_iommu: Use correct shift for 256 bits qi descriptor

2020-07-06 Thread Liu, Yi L
> From: Peter Xu > Sent: Tuesday, July 7, 2020 4:58 AM > > On Sat, Jul 04, 2020 at 01:07:15AM -0700, Liu Yi L wrote: > > In chapter 10.4.23 of VT-d spec 3.0, Descriptor Width bit was > > introduced in VTD_IQA_REG. Sfotware could set this bit to tell VT-d > > the QI

[RFC v7 24/25] intel_iommu: process PASID-based Device-TLB invalidation

2020-07-04 Thread Liu Yi L
: Richard Henderson Cc: Eduardo Habkost Reviewed-by: Peter Xu Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 18 ++ hw/i386/intel_iommu_internal.h | 1 + 2 files changed, 19 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 2a4a61c

[RFC v7 21/25] vfio: add support for flush iommu stage-1 cache

2020-07-04 Thread Liu Yi L
Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Alex Williamson Acked-by: Peter Xu Signed-off-by: Liu Yi L --- hw/iommu/host_iommu_context.c | 19 +++ hw/vfio/common.c | 24 include/hw/iommu

[RFC v7 20/25] intel_iommu: do not pass down pasid bind for PASID #0

2020-07-04 Thread Liu Yi L
l.org/lkml/2019/9/23/297 Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Reviewed-by: Peter Xu Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 10 ++ 1 file changed, 10 insertions(+) diff --git a/hw/i386/intel_io

[RFC v7 15/25] intel_iommu: add PASID cache management infrastructure

2020-07-04 Thread Liu Yi L
-by: Liu Yi L --- rfcv4 (v1) -> rfcv5 (v2): *) merged this patch with former replay binding patch, makes PSI/DSI/GSI use the unified function to do cache invalidation and pasid binding replay. *) dropped pasid_cache_gen in both iommu_state and vtd_pasid_as as it is not necessary so far, we

[RFC v7 14/25] intel_iommu: process PASID cache invalidation

2020-07-04 Thread Liu Yi L
in subsequent patches. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Reviewed-by: Peter Xu Signed-off-by: Liu Yi L --- rfcv4 (v1) -> rfcv5 (v2): *) remove vtd_pasid_cache_gsi(), vtd_pasid_cache_psi() and vtd_pasid_cache_

[RFC v7 13/25] intel_iommu: add virtual command capability support

2020-07-04 Thread Liu Yi L
-by: Liu Yi L Signed-off-by: Yi Sun --- hw/i386/intel_iommu.c | 154 - hw/i386/intel_iommu_internal.h | 37 ++ hw/i386/trace-events | 1 + include/hw/i386/intel_iommu.h | 10 ++- 4 files changed, 200 insertions(+), 2 deletions

[RFC v7 12/25] vfio: init HostIOMMUContext per-container

2020-07-04 Thread Liu Yi L
could make use the methods provided by host iommu context. e.g. propagate requests to host iommu. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Alex Williamson Signed-off-by: Liu Yi L --- hw/vfio/common.c | 111

[RFC v7 10/25] intel_iommu: add set/unset_iommu_context callback

2020-07-04 Thread Liu Yi L
Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 71 --- include/hw/i386/intel_iommu.h | 21 ++--- 2 files changed, 83 insertions(+), 9 deletions(-)

[RFC v7 25/25] intel_iommu: modify x-scalable-mode to be string option

2020-07-04 Thread Liu Yi L
: no scalable mode support - if not configured, means no scalable mode support, if not proper configured, will throw error Note: this patch is supposed to be merged when the whole vSVA patch series were merged. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richar

[RFC v7 09/25] hw/pci: introduce pci_device_set/unset_iommu_context()

2020-07-04 Thread Liu Yi L
ntext() to set/unset HostIOMMUContext for a given PCIe device (VFIO case). Caller of set should fail if set operation failed. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Michael S. Tsirkin Reviewed-by: Peter Xu Signed-off-by: Liu Yi L ---

[RFC v7 22/25] intel_iommu: process PASID-based iotlb invalidation

2020-07-04 Thread Liu Yi L
Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Reviewed-by: Peter Xu Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 53 ++ hw/i386/intel_iommu_internal.h | 13 +++ 2 files changed, 66 insertions(+) diff --git a/hw/i386

[RFC v7 19/25] intel_iommu: replay pasid binds after context cache invalidation

2020-07-04 Thread Liu Yi L
: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 50 ++ hw/i386/intel_iommu_internal.h | 1 + hw/i386/trace-events | 1 + 3 files changed, 52 insertions(+) diff --git a/hw

[RFC v7 08/25] hw/iommu: introduce HostIOMMUContext

2020-07-04 Thread Liu Yi L
ID in system-wide. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Michael S. Tsirkin Signed-off-by: Liu Yi L --- hw/Makefile.objs | 1 + hw/iommu/Makefile.objs| 1 + hw/iommu/host_iommu_context.c

[RFC v7 23/25] intel_iommu: propagate PASID-based iotlb invalidation to host

2020-07-04 Thread Liu Yi L
table related mappings during DMA address translation. This patch traps the guest PASID-based iotlb flush and propagate it to host. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Signed-off-by: Liu Yi L --- rfcv4 (v1) ->

[RFC v7 06/25] vfio: pass nesting requirement into vfio_get_group()

2020-07-04 Thread Liu Yi L
This patch passes the nesting requirement into vfio_get_group() to indicate whether VFIO_TYPE1_NESTING_IOMMU is required. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Alex Williamson Signed-off-by: Liu Yi L --- hw/vfio/ap.c | 2

[RFC v7 17/25] intel_iommu: sync IOMMU nesting cap info for assigned devices

2020-07-04 Thread Liu Yi L
. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 107 + hw/i386/intel_iommu_internal.h | 18 +++ include/hw/i386/intel_iommu.h | 4 ++ 3

[RFC v7 11/25] vfio/common: provide PASID alloc/free hooks

2020-07-04 Thread Liu Yi L
This patch defines vfio_host_iommu_context_info, implements the PASID alloc/free hooks defined in HostIOMMUContextClass. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Alex Williamson Signed-off-by: Liu Yi L --- hw/vfio/common.c

[RFC v7 18/25] intel_iommu: bind/unbind guest page table to host

2020-07-04 Thread Liu Yi L
gt;HPA) under nested translation mode. This is the key part of vSVA support, and also a key to support IOVA over 1st- level page table for Intel VT-d in virtualization environment. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Signed-off-by: Li

[RFC v7 16/25] vfio: add bind stage-1 page table support

2020-07-04 Thread Liu Yi L
Cc: David Gibson Cc: Alex Williamson Signed-off-by: Liu Yi L --- hw/iommu/host_iommu_context.c | 57 +- hw/vfio/common.c | 58 ++- include/hw/iommu/host_iommu_context.h | 19 +++- 3 files

[RFC v7 05/25] intel_iommu: add get_iommu_attr() callback

2020-07-04 Thread Liu Yi L
Return vIOMMU attribute to caller. e.g. VFIO call via PCI layer. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 23 +++ 1 file changed, 23 insertions

[RFC v7 03/25] hw/pci: modify pci_setup_iommu() to set PCIIOMMUOps

2020-07-04 Thread Liu Yi L
specific operations. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Michael S. Tsirkin Reviewed-by: David Gibson Reviewed-by: Peter Xu Signed-off-by: Liu Yi L --- hw/alpha/typhoon.c | 6 +- hw/arm/smmu-common.c | 6 +- hw/hppa

[RFC v7 07/25] vfio: check VFIO_TYPE1_NESTING_IOMMU support

2020-07-04 Thread Liu Yi L
Gibson Cc: Alex Williamson Signed-off-by: Liu Yi L Signed-off-by: Eric Auger Signed-off-by: Yi Sun --- hw/vfio/common.c | 37 ++--- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/hw/vfio/common.c b/hw/vfio/common.c index 89c6a25..b85fbcf 100644

[RFC v7 04/25] hw/pci: introduce pci_device_get_iommu_attr()

2020-07-04 Thread Liu Yi L
This patch adds pci_device_get_iommu_attr() to get vIOMMU attributes. e.g. if nesting IOMMU wanted. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Michael S. Tsirkin Signed-off-by: Liu Yi L --- hw/pci/pci.c | 35

[RFC v7 01/25] scripts/update-linux-headers: Import iommu.h

2020-07-04 Thread Liu Yi L
From: Eric Auger Update the script to import the new iommu.h uapi header. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Michael S. Tsirkin Cc: Cornelia Huck Cc: Paolo Bonzini Acked-by: Cornelia Huck Signed-off-by: Eric Auger --- scripts/update-linux-headers.sh | 2 +- 1

[RFC v7 02/25] header file update VFIO/IOMMU vSVA APIs kernel 5.8-rc3

2020-07-04 Thread Liu Yi L
be replaced with a full header files update when the vSVA uPAPI is stable. TODO: add the note for the Linux version. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Michael S. Tsirkin Cc: Cornelia Huck Cc: Paolo Bonzini Signed-off-by: Liu Yi L --- linux-headers/linux/iommu.h

[RFC v7 00/25] intel_iommu: expose Shared Virtual Addressing to VMs

2020-07-04 Thread Liu Yi L
a new option as RFC v1 did. Refined the pasid cache management and addressed the TODOs mentioned in RFC v1. RFC v1: https://patchwork.kernel.org/cover/11033657/ --- Eric Auger (1): scripts/update-linux-headers: Import iommu.h Liu Yi L (24): header file update V

[PATCH] intel_iommu: Use correct shift for 256 bits qi descriptor

2020-07-04 Thread Liu Yi L
when deciding the shift used to update VTD_IQH_REG. Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 7 ++- hw/i386/intel_iommu_internal.h | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index df7ad25..8703a2d

RE: [PATCH] MAINTAINERS: add VT-d entry

2020-07-01 Thread Liu, Yi L
> From: Peter Xu > Sent: Wednesday, July 1, 2020 8:44 PM> > Add this entry as suggested by Jason and Michael. > > CC: Jason Wang > CC: Michael S. Tsirkin > CC: Paolo Bonzini > Signed-off-by: Peter Xu > --- > MAINTAINERS | 9 + > 1 file changed, 9 insertions(+) > > diff --git

[RFC v6 25/25] intel_iommu: modify x-scalable-mode to be string option

2020-06-11 Thread Liu Yi L
: no scalable mode support - if not configured, means no scalable mode support, if not proper configured, will throw error Note: this patch is supposed to be merged when the whole vSVA patch series were merged. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richar

[RFC v6 17/25] intel_iommu: sync IOMMU nesting cap info for assigned devices

2020-06-11 Thread Liu Yi L
. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 105 + hw/i386/intel_iommu_internal.h | 5 ++ include/hw/i386/intel_iommu.h | 4 ++ 3 files

[RFC v6 21/25] vfio: add support for flush iommu stage-1 cache

2020-06-11 Thread Liu Yi L
Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Alex Williamson Acked-by: Peter Xu Signed-off-by: Liu Yi L --- hw/iommu/host_iommu_context.c | 19 +++ hw/vfio/common.c | 24 include/hw/iommu

[RFC v6 23/25] intel_iommu: propagate PASID-based iotlb invalidation to host

2020-06-11 Thread Liu Yi L
table related mappings during DMA address translation. This patch traps the guest PASID-based iotlb flush and propagate it to host. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Signed-off-by: Liu Yi L --- rfcv4 (v1) ->

[RFC v6 15/25] intel_iommu: add PASID cache management infrastructure

2020-06-11 Thread Liu Yi L
-by: Liu Yi L --- rfcv4 (v1) -> rfcv5 (v2): *) merged this patch with former replay binding patch, makes PSI/DSI/GSI use the unified function to do cache invalidation and pasid binding replay. *) dropped pasid_cache_gen in both iommu_state and vtd_pasid_as as it is not necessary so far, we

[RFC v6 16/25] vfio: add bind stage-1 page table support

2020-06-11 Thread Liu Yi L
Cc: David Gibson Cc: Alex Williamson Signed-off-by: Liu Yi L --- hw/iommu/host_iommu_context.c | 57 +- hw/vfio/common.c | 58 ++- include/hw/iommu/host_iommu_context.h | 19 +++- 3 files

[RFC v6 11/25] vfio/common: provide PASID alloc/free hooks

2020-06-11 Thread Liu Yi L
This patch defines vfio_host_iommu_context_info, implements the PASID alloc/free hooks defined in HostIOMMUContextClass. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Alex Williamson Signed-off-by: Liu Yi L --- hw/vfio/common.c

[RFC v6 04/25] hw/pci: introduce pci_device_get_iommu_attr()

2020-06-11 Thread Liu Yi L
This patch adds pci_device_get_iommu_attr() to get vIOMMU attributes. e.g. if nesting IOMMU wanted. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Michael S. Tsirkin Signed-off-by: Liu Yi L --- hw/pci/pci.c | 35

[RFC v6 24/25] intel_iommu: process PASID-based Device-TLB invalidation

2020-06-11 Thread Liu Yi L
: Richard Henderson Cc: Eduardo Habkost Reviewed-by: Peter Xu Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 18 ++ hw/i386/intel_iommu_internal.h | 1 + 2 files changed, 19 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 92a23ee

[RFC v6 09/25] hw/pci: introduce pci_device_set/unset_iommu_context()

2020-06-11 Thread Liu Yi L
ntext() to set/unset HostIOMMUContext for a given PCIe device (VFIO case). Caller of set should fail if set operation failed. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Michael S. Tsirkin Reviewed-by: Peter Xu Signed-off-by: Liu Yi L ---

[RFC v6 14/25] intel_iommu: process PASID cache invalidation

2020-06-11 Thread Liu Yi L
in subsequent patches. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Reviewed-by: Peter Xu Signed-off-by: Liu Yi L --- rfcv4 (v1) -> rfcv5 (v2): *) remove vtd_pasid_cache_gsi(), vtd_pasid_cache_psi() and vtd_pasid_cache_dsi()

[RFC v6 18/25] intel_iommu: bind/unbind guest page table to host

2020-06-11 Thread Liu Yi L
gt;HPA) under nested translation mode. This is the key part of vSVA support, and also a key to support IOVA over 1st- level page table for Intel VT-d in virtualization environment. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Signed-off-by: Li

[RFC v6 20/25] intel_iommu: do not pass down pasid bind for PASID #0

2020-06-11 Thread Liu Yi L
l.org/lkml/2019/9/23/297 Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Reviewed-by: Peter Xu Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 10 ++ 1 file changed, 10 insertions(+) diff --git a/hw/i386/intel_io

[RFC v6 03/25] hw/pci: modify pci_setup_iommu() to set PCIIOMMUOps

2020-06-11 Thread Liu Yi L
specific operations. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Michael S. Tsirkin Reviewed-by: David Gibson Reviewed-by: Peter Xu Signed-off-by: Liu Yi L --- hw/alpha/typhoon.c | 6 +- hw/arm/smmu-common.c | 6 +- hw/hppa

[RFC v6 12/25] vfio: init HostIOMMUContext per-container

2020-06-11 Thread Liu Yi L
could make use the methods provided by host iommu context. e.g. propagate requests to host iommu. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Alex Williamson Signed-off-by: Liu Yi L --- hw/vfio/common.c | 111

[RFC v6 19/25] intel_iommu: replay pasid binds after context cache invalidation

2020-06-11 Thread Liu Yi L
: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 50 ++ hw/i386/intel_iommu_internal.h | 1 + hw/i386/trace-events | 1 + 3 files changed, 52 insertions(+) diff --git a/hw

[RFC v6 05/25] intel_iommu: add get_iommu_attr() callback

2020-06-11 Thread Liu Yi L
Return vIOMMU attribute to caller. e.g. VFIO call via PCI layer. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 23 +++ 1 file changed, 23 insertions

[RFC v6 13/25] intel_iommu: add virtual command capability support

2020-06-11 Thread Liu Yi L
-by: Liu Yi L Signed-off-by: Yi Sun --- hw/i386/intel_iommu.c | 154 - hw/i386/intel_iommu_internal.h | 37 ++ hw/i386/trace-events | 1 + include/hw/i386/intel_iommu.h | 10 ++- 4 files changed, 200 insertions(+), 2 deletions

[RFC v6 22/25] intel_iommu: process PASID-based iotlb invalidation

2020-06-11 Thread Liu Yi L
Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Reviewed-by: Peter Xu Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 53 ++ hw/i386/intel_iommu_internal.h | 13 +++ 2 files changed, 66 insertions(+) diff --git a/hw/i386

[RFC v6 01/25] scripts/update-linux-headers: Import iommu.h

2020-06-11 Thread Liu Yi L
From: Eric Auger Update the script to import the new iommu.h uapi header. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Michael S. Tsirkin Cc: Cornelia Huck Cc: Paolo Bonzini Acked-by: Cornelia Huck Signed-off-by: Eric Auger --- scripts/update-linux-headers.sh | 2 +- 1

[RFC v6 02/25] header file update VFIO/IOMMU vSVA APIs kernel 5.7-rc4

2020-06-11 Thread Liu Yi L
the below branch: https://github.com/luxis1999/linux-vsva.git:vsva-linux-5.7-rc4-v2 Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Yi Sun Cc: Michael S. Tsirkin Cc: Cornelia Huck Cc: Paolo Bonzini Signed-off-by: Liu Yi L --- linux-headers/linux/iommu.h | 382

[RFC v6 10/25] intel_iommu: add set/unset_iommu_context callback

2020-06-11 Thread Liu Yi L
Cc: Peter Xu Cc: Yi Sun Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 71 --- include/hw/i386/intel_iommu.h | 21 ++--- 2 files changed, 83 insertions(+), 9 deletions(-)

[RFC v6 06/25] vfio: pass nesting iommu requirement into vfio_get_group()

2020-06-11 Thread Liu Yi L
This patch passes the nesting requirement into vfio_get_group() to indicate whether VFIO_TYPE1_NESTING_IOMMU is required. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Alex Williamson Signed-off-by: Liu Yi L --- hw/vfio/ap.c | 2

[RFC v6 08/25] hw/iommu: introduce HostIOMMUContext

2020-06-11 Thread Liu Yi L
ID in system-wide. Cc: Kevin Tian Cc: Jacob Pan Cc: Peter Xu Cc: Eric Auger Cc: Yi Sun Cc: David Gibson Cc: Michael S. Tsirkin Signed-off-by: Liu Yi L --- hw/Makefile.objs | 1 + hw/iommu/Makefile.objs| 1 + hw/iommu/host_iommu_context.c

[RFC v6 07/25] vfio: check VFIO_TYPE1_NESTING_IOMMU support

2020-06-11 Thread Liu Yi L
Gibson Cc: Alex Williamson Signed-off-by: Liu Yi L Signed-off-by: Eric Auger Signed-off-by: Yi Sun --- hw/vfio/common.c | 37 ++--- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/hw/vfio/common.c b/hw/vfio/common.c index 89c6a25..b85fbcf 100644

[RFC v6 00/25] intel_iommu: expose Shared Virtual Addressing to VMs

2020-06-11 Thread Liu Yi L
HERE *** Eric Auger (1): scripts/update-linux-headers: Import iommu.h Liu Yi L (24): header file update VFIO/IOMMU vSVA APIs kernel 5.7-rc4 hw/pci: modify pci_setup_iommu() to set PCIIOMMUOps hw/pci: introduce pci_device_get_iommu_attr() intel_iommu: add get_iommu_attr()

RE: [PATCH v2 09/22] vfio/common: init HostIOMMUContext per-container

2020-04-07 Thread Liu, Yi L
Hi Eric, > From: Auger Eric > Sent: Monday, April 6, 2020 6:20 PM > Subject: Re: [PATCH v2 09/22] vfio/common: init HostIOMMUContext per-container > > Hi Yi, > > On 4/6/20 9:12 AM, Liu, Yi L wrote: > > Hi Eric, > > > >> From: Auger Eric > >>

RE: [PATCH v2 04/22] hw/iommu: introduce HostIOMMUContext

2020-04-06 Thread Liu, Yi L
Hi Eric, > From: Auger Eric < eric.au...@redhat.com> > Sent: Tuesday, March 31, 2020 1:23 AM > To: Liu, Yi L ; qemu-devel@nongnu.org; > Subject: Re: [PATCH v2 04/22] hw/iommu: introduce HostIOMMUContext > > Yi, > > On 3/30/20 6:24 AM, Liu Yi L wrote: > > Curr

RE: [PATCH v2 09/22] vfio/common: init HostIOMMUContext per-container

2020-04-06 Thread Liu, Yi L
Hi Eric, > From: Auger Eric > Sent: Wednesday, April 1, 2020 3:51 PM > To: Liu, Yi L ; qemu-devel@nongnu.org; > Subject: Re: [PATCH v2 09/22] vfio/common: init HostIOMMUContext per-container > > Hi Yi, > > On 3/30/20 6:24 AM, Liu Yi L wrote: > > In this patch, QEM

RE: [PATCH v2 05/22] hw/pci: modify pci_setup_iommu() to set PCIIOMMUOps

2020-04-06 Thread Liu, Yi L
Hi Eric, > From: Auger Eric > Sent: Thursday, April 2, 2020 9:49 PM > To: Liu, Yi L ; qemu-devel@nongnu.org; > Subject: Re: [PATCH v2 05/22] hw/pci: modify pci_setup_iommu() to set > PCIIOMMUOps > > Hi Yi, > > On 4/2/20 3:37 PM, Liu, Yi L wrote: > > Hi Eric, &g

RE: [PATCH v2 16/22] intel_iommu: replay pasid binds after context cache invalidation

2020-04-04 Thread Liu, Yi L
Hi Peter, > From: Peter Xu > Sent: Saturday, April 4, 2020 12:11 AM > To: Liu, Yi L > Subject: Re: [PATCH v2 16/22] intel_iommu: replay pasid binds after context > cache > invalidation > > On Fri, Apr 03, 2020 at 03:21:10PM +, Liu, Yi L wrote: > > > F

RE: [PATCH v2 13/22] intel_iommu: add PASID cache management infrastructure

2020-04-04 Thread Liu, Yi L
Hi Peter, > From: Peter Xu > Sent: Saturday, April 4, 2020 12:20 AM > To: Liu, Yi L > > On Fri, Apr 03, 2020 at 03:05:57PM +, Liu, Yi L wrote: > > > From: Peter Xu > > > Sent: Thursday, April 2, 2020 9:45 PM > > > To: Liu, Yi L > > > S

RE: [PATCH v2 22/22] intel_iommu: modify x-scalable-mode to be string option

2020-04-03 Thread Liu, Yi L
> From: Peter Xu < pet...@redhat.com> > Sent: Friday, April 3, 2020 10:49 PM > To: Liu, Yi L > Subject: Re: [PATCH v2 22/22] intel_iommu: modify x-scalable-mode to be string > option > > On Sun, Mar 29, 2020 at 09:25:01PM -0700, Liu Yi L wrote: > > Intel

RE: [PATCH v2 16/22] intel_iommu: replay pasid binds after context cache invalidation

2020-04-03 Thread Liu, Yi L
> From: Peter Xu > Sent: Friday, April 3, 2020 10:46 PM > To: Liu, Yi L > Subject: Re: [PATCH v2 16/22] intel_iommu: replay pasid binds after context > cache > invalidation > > On Sun, Mar 29, 2020 at 09:24:55PM -0700, Liu Yi L wrote: > > This patch replays gues

RE: [PATCH v2 19/22] intel_iommu: process PASID-based iotlb invalidation

2020-04-03 Thread Liu, Yi L
> From: Peter Xu > Sent: Friday, April 3, 2020 10:47 PM > To: Liu, Yi L > Subject: Re: [PATCH v2 19/22] intel_iommu: process PASID-based iotlb > invalidation > > On Sun, Mar 29, 2020 at 09:24:58PM -0700, Liu Yi L wrote: > > This patch adds the basic PASID-based

RE: [PATCH v2 13/22] intel_iommu: add PASID cache management infrastructure

2020-04-03 Thread Liu, Yi L
> From: Peter Xu > Sent: Thursday, April 2, 2020 9:45 PM > To: Liu, Yi L > Subject: Re: [PATCH v2 13/22] intel_iommu: add PASID cache management > infrastructure > > On Thu, Apr 02, 2020 at 06:46:11AM +, Liu, Yi L wrote: > > [...] > > > > > +/**

RE: [PATCH v2 00/22] intel_iommu: expose Shared Virtual Addressing to VMs

2020-04-03 Thread Liu, Yi L
> From: Peter Xu > Sent: Friday, April 3, 2020 2:13 AM > To: Liu, Yi L > Subject: Re: [PATCH v2 00/22] intel_iommu: expose Shared Virtual Addressing to > VMs > > On Sun, Mar 29, 2020 at 09:24:39PM -0700, Liu Yi L wrote: > > Tests: basci vSVA functionality test, >

RE: [PATCH v2 15/22] intel_iommu: bind/unbind guest page table to host

2020-04-03 Thread Liu, Yi L
> From: Peter Xu > Sent: Friday, April 3, 2020 2:09 AM > To: Liu, Yi L > Subject: Re: [PATCH v2 15/22] intel_iommu: bind/unbind guest page table to > host > > On Sun, Mar 29, 2020 at 09:24:54PM -0700, Liu Yi L wrote: > > +static int vtd_bind_guest_pasid(IntelIOM

RE: [PATCH v2 00/22] intel_iommu: expose Shared Virtual Addressing to VMs

2020-04-03 Thread Liu, Yi L
> From: Peter Xu > Sent: Thursday, April 2, 2020 9:46 PM > To: Jason Wang > Subject: Re: [PATCH v2 00/22] intel_iommu: expose Shared Virtual Addressing to > VMs > > On Thu, Apr 02, 2020 at 04:33:02PM +0800, Jason Wang wrote: > > > The complete QEMU set can be found in below link: > > >

RE: [PATCH v2 05/22] hw/pci: modify pci_setup_iommu() to set PCIIOMMUOps

2020-04-02 Thread Liu, Yi L
Hi Eric, > From: Auger Eric < eric.au...@redhat.com > > Sent: Thursday, April 2, 2020 8:41 PM > To: Liu, Yi L ; qemu-devel@nongnu.org; > Subject: Re: [PATCH v2 05/22] hw/pci: modify pci_setup_iommu() to set > PCIIOMMUOps > > Hi Yi, > > On 4/2/20 10:52 AM, Liu,

RE: [PATCH v2 05/22] hw/pci: modify pci_setup_iommu() to set PCIIOMMUOps

2020-04-02 Thread Liu, Yi L
> From: Auger Eric < eric.au...@redhat.com> > Sent: Monday, March 30, 2020 7:02 PM > To: Liu, Yi L ; qemu-devel@nongnu.org; > Subject: Re: [PATCH v2 05/22] hw/pci: modify pci_setup_iommu() to set > PCIIOMMUOps > > > > On 3/30/20 6:24 AM, Liu Yi L wrote: > &

RE: [PATCH v2 13/22] intel_iommu: add PASID cache management infrastructure

2020-04-02 Thread Liu, Yi L
Hi Peter, > From: Peter Xu > Sent: Thursday, April 2, 2020 8:02 AM > Subject: Re: [PATCH v2 13/22] intel_iommu: add PASID cache management > infrastructure > > On Sun, Mar 29, 2020 at 09:24:52PM -0700, Liu Yi L wrote: > > This patch adds a PASID cache management inf

RE: [PATCH v2 10/22] vfio/pci: set host iommu context to vIOMMU

2020-03-31 Thread Liu, Yi L
Hi Eric, > From: Auger Eric > Sent: Tuesday, March 31, 2020 10:30 PM > To: Liu, Yi L ; qemu-devel@nongnu.org; > Subject: Re: [PATCH v2 10/22] vfio/pci: set host iommu context to vIOMMU > > Yi, > > On 3/30/20 6:24 AM, Liu Yi L wrote: > > For vfio-pci device

RE: [PATCH v2 08/22] vfio/common: provide PASID alloc/free hooks

2020-03-31 Thread Liu, Yi L
Hi Eric, > From: Auger Eric > Sent: Tuesday, March 31, 2020 7:16 PM > To: Liu, Yi L ; qemu-devel@nongnu.org; > Subject: Re: [PATCH v2 08/22] vfio/common: provide PASID alloc/free hooks > > Hi Yi, > On 3/31/20 12:59 PM, Liu, Yi L wrote: > > Hi Eric, > > > &g

RE: [PATCH v2 04/22] hw/iommu: introduce HostIOMMUContext

2020-03-31 Thread Liu, Yi L
Hi Eric, > From: Auger Eric > Sent: Tuesday, March 31, 2020 3:48 PM > To: Liu, Yi L ; qemu-devel@nongnu.org; > Subject: Re: [PATCH v2 04/22] hw/iommu: introduce HostIOMMUContext > > Yi, > > On 3/31/20 6:10 AM, Liu, Yi L wrote: > > Hi Eric, > > > >

RE: [PATCH v2 07/22] intel_iommu: add set/unset_iommu_context callback

2020-03-31 Thread Liu, Yi L
Hi Eric, > From: Auger Eric < eric.au...@redhat.com> > Sent: Tuesday, March 31, 2020 4:24 AM > To: Liu, Yi L ; qemu-devel@nongnu.org; > Subject: Re: [PATCH v2 07/22] intel_iommu: add set/unset_iommu_context > callback > > Yi, > > On 3/30/20 6:24 AM, Liu Yi

RE: [PATCH v2 06/22] hw/pci: introduce pci_device_set/unset_iommu_context()

2020-03-31 Thread Liu, Yi L
Hi Eric, > From: Auger Eric < eric.au...@redhat.com> > Sent: Tuesday, March 31, 2020 1:30 AM > To: Liu, Yi L ; qemu-devel@nongnu.org; > Subject: Re: [PATCH v2 06/22] hw/pci: introduce > pci_device_set/unset_iommu_context() > > Yi, > On 3/30/20 6:24 AM, Liu Y

RE: [PATCH v2 08/22] vfio/common: provide PASID alloc/free hooks

2020-03-31 Thread Liu, Yi L
Hi Eric, > From: Auger Eric > Sent: Tuesday, March 31, 2020 6:48 PM > To: Liu, Yi L ; qemu-devel@nongnu.org; > alex.william...@redhat.com; pet...@redhat.com > Cc: pbonz...@redhat.com; m...@redhat.com; da...@gibson.dropbear.id.au; Tian, > Kevin ; Tian, Jun J ; Sun, Yi Y > ;

RE: [RFC v6 09/24] vfio: Force nested if iommu requires it

2020-03-31 Thread Liu, Yi L
> From: Auger Eric > Sent: Tuesday, March 31, 2020 4:05 PM > To: Liu, Yi L ; eric.auger@gmail.com; qemu- > Subject: Re: [RFC v6 09/24] vfio: Force nested if iommu requires it > > Yi, > > On 3/31/20 8:34 AM, Liu, Yi L wrote: > > Hi Eric, > > > >>

RE: [PATCH v2 00/22] intel_iommu: expose Shared Virtual Addressing to VMs

2020-03-31 Thread Liu, Yi L
Hi Eric, > From: Peter Xu > Sent: Monday, March 30, 2020 10:47 PM > To: Auger Eric > Subject: Re: [PATCH v2 00/22] intel_iommu: expose Shared Virtual Addressing to > VMs > > On Mon, Mar 30, 2020 at 12:36:23PM +0200, Auger Eric wrote: > > I think in general, as long as the kernel dependencies

RE: [RFC v6 09/24] vfio: Force nested if iommu requires it

2020-03-31 Thread Liu, Yi L
Hi Eric, > From: Eric Auger > Sent: Saturday, March 21, 2020 12:58 AM > To: eric.auger@gmail.com; eric.au...@redhat.com; qemu-devel@nongnu.org; > Subject: [RFC v6 09/24] vfio: Force nested if iommu requires it > > In case we detect the address space is translated by > a virtual IOMMU which

RE: [PATCH v2 03/22] vfio: check VFIO_TYPE1_NESTING_IOMMU support

2020-03-31 Thread Liu, Yi L
Eric, > From: Auger Eric > Sent: Monday, March 30, 2020 5:36 PM > To: Liu, Yi L ; qemu-devel@nongnu.org; > Subject: Re: [PATCH v2 03/22] vfio: check VFIO_TYPE1_NESTING_IOMMU support > > Yi, > > On 3/30/20 6:24 AM, Liu Yi L wrote: > > VFIO needs to check VF

RE: [PATCH v2 04/22] hw/iommu: introduce HostIOMMUContext

2020-03-30 Thread Liu, Yi L
Hi Eric, > From: Auger Eric < eric.au...@redhat.com > > Sent: Tuesday, March 31, 2020 1:23 AM > To: Liu, Yi L ; qemu-devel@nongnu.org; > Subject: Re: [PATCH v2 04/22] hw/iommu: introduce HostIOMMUContext > > Yi, > > On 3/30/20 6:24 AM, Liu Yi L wrote: > &

RE: [PATCH v1 02/22] header file update VFIO/IOMMU vSVA APIs

2020-03-30 Thread Liu, Yi L
Hi Eric, > From: Auger Eric > Sent: Monday, March 30, 2020 12:33 AM > To: Liu, Yi L ; qemu-devel@nongnu.org; > Subject: Re: [PATCH v1 02/22] header file update VFIO/IOMMU vSVA APIs > > Hi Yi, > > On 3/22/20 1:35 PM, Liu Yi L wrote: > > The kernel uapi/linu

[PATCH v2 21/22] intel_iommu: process PASID-based Device-TLB invalidation

2020-03-29 Thread Liu Yi L
: Richard Henderson Cc: Eduardo Habkost Reviewed-by: Peter Xu Signed-off-by: Liu Yi L --- hw/i386/intel_iommu.c | 18 ++ hw/i386/intel_iommu_internal.h | 1 + 2 files changed, 19 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 02ad90a

<    1   2   3   4   5   6   7   >