Hi,

On Tue, Aug 18, 2026 at 08:36:18PM +0800, LiMing Wu wrote:
> From: Liming Wu <[email protected]>
> 
> Expose basic virtio-iommu runtime state through debugfs so that the
> relationship between endpoints, IOMMU groups, domains and active mappings
> can be inspected from a running guest.

Thank you for the patch. Do you have a use for this feature, a platform
with virtio-iommu?  I'd rather not add new features to the driver unless
someone needs them.

> Create per-device files under /sys/kernel/debug/iommu/virtio/:
> 
>   status    - negotiated virtio-iommu features and geometry
>   endpoints - endpoint, group and attached domain information
>   domains   - domain type, endpoint count and mapping count
>   mappings  - active IOVA mappings tracked by the driver

endpoints, groups and domains are described in /sys/kernel/iommu_groups.
Mappings are not, but a VMM like QEMU can provide a trace of ATTACH,
MAP, UNMAP requests which is quite useful when debugging.

> +     seq_puts(s, "features:\n");
> +     viommu_debugfs_feature(s, viommu, VIRTIO_IOMMU_F_MAP_UNMAP,
> +                            "map_unmap");
> +     viommu_debugfs_feature(s, viommu, VIRTIO_IOMMU_F_INPUT_RANGE,
> +                            "input_range");
> +     viommu_debugfs_feature(s, viommu, VIRTIO_IOMMU_F_DOMAIN_RANGE,
> +                            "domain_range");
> +     viommu_debugfs_feature(s, viommu, VIRTIO_IOMMU_F_PROBE, "probe");
> +     viommu_debugfs_feature(s, viommu, VIRTIO_IOMMU_F_MMIO, "mmio");
> +     viommu_debugfs_feature(s, viommu, VIRTIO_IOMMU_F_BYPASS_CONFIG,
> +                            "bypass_config");

Virtio provides the feature bits in /sys/bus/virtio/devices/. Not as
convenient as text description but a simple script could help decode it,
for example https://jpbrucker.net/git/iommutools/tree/lsiommu.c#n743

Thanks,
Jean


Reply via email to