[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
- To: Milan Djokic <milan_djokic@xxxxxxxx>
- From: Julien Grall <julien.grall.oss@xxxxxxxxx>
- Date: Thu, 7 Aug 2025 18:58:34 +0100
- Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Rahul Singh <rahul.singh@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Nick Rosbrook <enr0n@xxxxxxxxxx>, George Dunlap <gwd@xxxxxxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
- Delivery-date: Thu, 07 Aug 2025 17:58:50 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
This patch series represents a rebase of an older patch series implemented and
sumbitted by Rahul Singh as an RFC: https://patchwork.kernel.org/project/xen-devel/cover/cover.1669888522.git.rahul.singh@xxxxxxx/.
Original patch series content is aligned with the latest xen structure in terms of common/arch-specific code structuring.
Some minor bugfixes are also applied:
- Sanity checks / error handling
- Non-pci devices support for emulated iommu
Overall description of stage-1 support is available in the original
patch series cover letter. Original commits structure with detailed explanation for each commit
functionality is maintained.
I am a bit surprised not much has changed. Last time we asked a document to explain the overall design of the vSMMU including some details on the security posture. I can’t remember if this was ever posted.
If not, then you need to start with that. Otherwise, if is going to be pretty difficult to review this series.
Cheers,
Patch series testing is performed in qemu arm environment. Additionally,
stage-1 translation for non-pci devices is verified on a Renesas platform.
Jean-Philippe Brucker (1):
xen/arm: smmuv3: Maintain a SID->device structure
Rahul Singh (19):
xen/arm: smmuv3: Add support for stage-1 and nested stage translation
xen/arm: smmuv3: Alloc io_domain for each device
xen/arm: vIOMMU: add generic vIOMMU framework
xen/arm: vsmmuv3: Add dummy support for virtual SMMUv3 for guests
xen/domctl: Add XEN_DOMCTL_CONFIG_VIOMMU_* and viommu config param
xen/arm: vIOMMU: Add cmdline boot option "viommu = <boolean>"
xen/arm: vsmmuv3: Add support for registers emulation
xen/arm: vsmmuv3: Add support for cmdqueue handling
xen/arm: vsmmuv3: Add support for command CMD_CFGI_STE
xen/arm: vsmmuv3: Attach Stage-1 configuration to SMMUv3 hardware
xen/arm: vsmmuv3: Add support for event queue and global error
xen/arm: vsmmuv3: Add "iommus" property node for dom0 devices
xen/arm: vIOMMU: IOMMU device tree node for dom0
xen/arm: vsmmuv3: Emulated SMMUv3 device tree node for dom0less
arm/libxl: vsmmuv3: Emulated SMMUv3 device tree node in libxl
xen/arm: vsmmuv3: Alloc virq for virtual SMMUv3
xen/arm: vsmmuv3: Add support to send stage-1 event to guest
libxl/arm: vIOMMU: Modify the partial device tree for iommus
xen/arm: vIOMMU: Modify the partial device tree for dom0less
docs/man/xl.cfg.5.pod.in | 13 +
docs/misc/xen-command-line.pandoc | 7 +
tools/golang/xenlight/helpers.gen.go | 2 +
tools/golang/xenlight/types.gen.go | 1 +
tools/include/libxl.h | 5 +
tools/libs/light/libxl_arm.c | 123 +++-
tools/libs/light/libxl_types.idl | 6 +
tools/xl/xl_parse.c | 10 +
xen/arch/arm/dom0less-build.c | 72 ++
xen/arch/arm/domain.c | 26 +
xen/arch/arm/domain_build.c | 103 ++-
xen/arch/arm/include/asm/domain.h | 4 +
xen/arch/arm/include/asm/viommu.h | 102 +++
xen/common/device-tree/dom0less-build.c | 31 +-
xen/drivers/passthrough/Kconfig | 14 +
xen/drivers/passthrough/arm/Makefile | 2 +
xen/drivers/passthrough/arm/smmu-v3.c | 369 +++++++++-
xen/drivers/passthrough/arm/smmu-v3.h | 49 +-
xen/drivers/passthrough/arm/viommu.c | 87 +++
xen/drivers/passthrough/arm/vsmmu-v3.c | 895 ++++++++++++++++++++++++
xen/drivers/passthrough/arm/vsmmu-v3.h | 32 +
xen/include/public/arch-arm.h | 14 +-
xen/include/public/device_tree_defs.h | 1 +
xen/include/xen/iommu.h | 14 +
24 files changed, 1935 insertions(+), 47 deletions(-)
create mode 100644 xen/arch/arm/include/asm/viommu.h
create mode 100644 xen/drivers/passthrough/arm/viommu.c
create mode 100644 xen/drivers/passthrough/arm/vsmmu-v3.c
create mode 100644 xen/drivers/passthrough/arm/vsmmu-v3.h
--
2.43.0
|