Hi Nathan,
On 3/17/26 7:37 PM, Nathan Chen wrote:
> Hi,
>
> This is a follow-up to the previous series [0] that introduces support
> for specifying 'auto' for arm-smmuv3 accelerated mode's ATS, RIL,
> SSIDSIZE, and OAS feature properties.
>
> In QEMU 11.0 we introduced new options for vSMMU [1], but feedback received
> when starting the integration of layered products shows the need for
> auto/host-retrieved values. To avoid breaking JSON/QMP compat, we want
> to fix the option types so that they can later support the auto mode. At
> the moment the auto mode is not supported though.
>
> A future series will introduce support for resolving the 'auto' values
> based on host SMMUv3 IDR values, as well as setting per-device ATS
> capability.
>
> A complete branch can be found here:
> https://github.com/NathanChenNVIDIA/qemu/tree/smmuv3-accel-auto-v3
>
> Please take a look and let me know your feedback.
>
> Thanks,
> Nathan
>
> Changes from v2:
> - Enforce 'auto' value not being supported for HW-accel SMMUv3 props
> - Revise docs to mention auto is not supported and these properties
> are only applicable when accel=on.
> - Only override non-defaults in smmuv3_accel_idr_override()
> - Remove check for SSIDSIZE AUTO in smmuv3_accel_idr_override() as
> smmu_validate_property() checks for AUTO beforehand
> - Consolidate comments for ssidsize_mode_to_value()
> - Include Fixes tags in commit descriptions
> - Include R-by tags from v2
>
> Changes from RFCv1:
> - Remove changes that resolve the 'auto' values based on host SMMUv3
> - Restore defaults values for RIL, OAS, SSIDSIZE, and ATS
> - Update OasMode to accept all OAS sizes instead of only auto, 44, and
> 48
> - Include comment in SsidSizeMode schema clarifying enum value
> ordering
> - Replace ats-enabled prop with a helper that accepts the dynamic
> casted TYPE_ARM_SMMUV3 object
> - Separate out guest vs. host ATS check in
> smmuv3_accel_check_hw_compatible() to a different commit
> - Document accel, RIL, OAS, SSIDSIZE, and ATS properties in
> qemu-options.hx
>
> Testing:
> Basic sanity testing was performed on an NVIDIA Grace platform with GPU
> device assignment and running CUDA test apps on the guest. Additional
> testing and feedback are welcome.
Feel free to add my
Tested-by: Eric Auger <eric.auger@redhat.com>
Eric
>
> [0] https://lore.kernel.org/qemu-devel/20260312210328.2016191-1-nathanc@nvidia.com/
> [1] https://lore.kernel.org/all/20260126104342.253965-1-skolothumtho@nvidia.com/
>
> Nathan Chen (8):
> hw/arm/smmuv3-accel: Check ATS compatibility between host and guest
> hw/arm/smmuv3-accel: Change ATS property to OnOffAuto
> hw/arm/smmuv3-accel: Change RIL property to OnOffAuto
> qdev: Add a SsidSizeMode property
> hw/arm/smmuv3-accel: Change SSIDSIZE property to SsidSizeMode
> qdev: Add an OasMode property
> hw/arm/smmuv3-accel: Change OAS property to OasMode
> qemu-options.hx: Document arm-smmuv3 device's accel properties
>
> hw/arm/smmuv3-accel.c | 43 ++++++++++++++++++----
> hw/arm/smmuv3.c | 45 ++++++++++++++++--------
> hw/arm/virt-acpi-build.c | 2 +-
> hw/core/qdev-properties-system.c | 27 ++++++++++++++
> include/hw/arm/smmuv3.h | 11 +++---
> include/hw/core/qdev-properties-system.h | 6 ++++
> qapi/misc-arm.json | 44 +++++++++++++++++++++++
> qapi/pragma.json | 1 +
> qemu-options.hx | 35 +++++++++++++++++-
> 9 files changed, 187 insertions(+), 27 deletions(-)
>