diff options
Diffstat (limited to 'include/trace/events/iommu.h')
-rw-r--r-- | include/trace/events/iommu.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/include/trace/events/iommu.h b/include/trace/events/iommu.h index 2c7befb10f13..7b8ba9ffa5a3 100644 --- a/include/trace/events/iommu.h +++ b/include/trace/events/iommu.h @@ -83,6 +83,29 @@ DEFINE_EVENT(iommu_device_event, detach_device_from_domain, TP_ARGS(dev) ); +DECLARE_EVENT_CLASS(iommu_map_unmap, + + TP_PROTO(unsigned long iova, phys_addr_t paddr, size_t size), + + TP_ARGS(iova, paddr, size), + + TP_STRUCT__entry( + __field(u64, iova) + __field(u64, paddr) + __field(size_t, size) + ), + + TP_fast_assign( + __entry->iova = iova; + __entry->paddr = paddr; + __entry->size = size; + ), + + TP_printk("IOMMU: iova=0x%016llx paddr=0x%016llx size=0x%zx", + __entry->iova, __entry->paddr, __entry->size + ) +); + TRACE_EVENT(map, TP_PROTO(unsigned long iova, phys_addr_t paddr, size_t size), @@ -129,6 +152,77 @@ TRACE_EVENT(unmap, ) ); +DEFINE_EVENT(iommu_map_unmap, map_start, + + TP_PROTO(unsigned long iova, phys_addr_t paddr, size_t size), + + TP_ARGS(iova, paddr, size) +); + +DEFINE_EVENT(iommu_map_unmap, map_end, + + TP_PROTO(unsigned long iova, phys_addr_t paddr, size_t size), + + TP_ARGS(iova, paddr, size) +); + +DEFINE_EVENT_PRINT(iommu_map_unmap, unmap_start, + + TP_PROTO(unsigned long iova, phys_addr_t paddr, size_t size), + + TP_ARGS(iova, paddr, size), + + TP_printk("IOMMU: iova=0x%016llx size=0x%x", + __entry->iova, __entry->size + ) +); + +DEFINE_EVENT_PRINT(iommu_map_unmap, unmap_end, + + TP_PROTO(unsigned long iova, phys_addr_t paddr, size_t size), + + TP_ARGS(iova, paddr, size), + + TP_printk("IOMMU: iova=0x%016llx size=0x%x", + __entry->iova, __entry->size + ) +); + +DECLARE_EVENT_CLASS(iommu_map_sg, + + TP_PROTO(unsigned long iova, unsigned int nents), + + TP_ARGS(iova, nents), + + TP_STRUCT__entry( + __field(u64, iova) + __field(int, nents) + ), + + TP_fast_assign( + __entry->iova = iova; + __entry->nents = nents; + ), + + TP_printk("IOMMU: iova=0x%016llx nents=%u", + __entry->iova, __entry->nents + ) +); + +DEFINE_EVENT(iommu_map_sg, map_sg_start, + + TP_PROTO(unsigned long iova, unsigned int nents), + + TP_ARGS(iova, nents) +); + +DEFINE_EVENT(iommu_map_sg, map_sg_end, + + TP_PROTO(unsigned long iova, unsigned int nents), + + TP_ARGS(iova, nents) +); + DECLARE_EVENT_CLASS(iommu_error, TP_PROTO(struct device *dev, unsigned long iova, int flags), |