.. | .. |
---|
12 | 12 | #define _TRACE_IOMMU_H |
---|
13 | 13 | |
---|
14 | 14 | #include <linux/tracepoint.h> |
---|
15 | | -#include <linux/iommu.h> |
---|
16 | 15 | |
---|
17 | 16 | struct device; |
---|
18 | | -struct iommu_domain; |
---|
19 | 17 | |
---|
20 | 18 | DECLARE_EVENT_CLASS(iommu_group_event, |
---|
21 | 19 | |
---|
.. | .. |
---|
87 | 85 | |
---|
88 | 86 | TRACE_EVENT(map, |
---|
89 | 87 | |
---|
90 | | - TP_PROTO(struct iommu_domain *domain, unsigned long iova, |
---|
91 | | - phys_addr_t paddr, size_t size, int prot), |
---|
| 88 | + TP_PROTO(unsigned long iova, phys_addr_t paddr, size_t size), |
---|
92 | 89 | |
---|
93 | | - TP_ARGS(domain, iova, paddr, size, prot), |
---|
| 90 | + TP_ARGS(iova, paddr, size), |
---|
94 | 91 | |
---|
95 | 92 | TP_STRUCT__entry( |
---|
96 | | - __string(name, domain->name) |
---|
97 | 93 | __field(u64, iova) |
---|
98 | 94 | __field(u64, paddr) |
---|
99 | 95 | __field(size_t, size) |
---|
100 | | - __field(int, prot) |
---|
101 | 96 | ), |
---|
102 | 97 | |
---|
103 | 98 | TP_fast_assign( |
---|
104 | | - __assign_str(name, domain->name); |
---|
105 | 99 | __entry->iova = iova; |
---|
106 | 100 | __entry->paddr = paddr; |
---|
107 | 101 | __entry->size = size; |
---|
108 | | - __entry->prot = prot; |
---|
109 | 102 | ), |
---|
110 | 103 | |
---|
111 | | - TP_printk("IOMMU:%s iova=0x%016llx paddr=0x%016llx size=0x%zx prot=0x%x", |
---|
112 | | - __get_str(name), __entry->iova, __entry->paddr, |
---|
113 | | - __entry->size, __entry->prot |
---|
| 104 | + TP_printk("IOMMU: iova=0x%016llx paddr=0x%016llx size=%zu", |
---|
| 105 | + __entry->iova, __entry->paddr, __entry->size |
---|
114 | 106 | ) |
---|
115 | 107 | ); |
---|
116 | 108 | |
---|
117 | 109 | TRACE_EVENT(unmap, |
---|
118 | 110 | |
---|
119 | | - TP_PROTO(struct iommu_domain *domain, unsigned long iova, size_t size, |
---|
120 | | - size_t unmapped_size), |
---|
| 111 | + TP_PROTO(unsigned long iova, size_t size, size_t unmapped_size), |
---|
121 | 112 | |
---|
122 | | - TP_ARGS(domain, iova, size, unmapped_size), |
---|
| 113 | + TP_ARGS(iova, size, unmapped_size), |
---|
123 | 114 | |
---|
124 | 115 | TP_STRUCT__entry( |
---|
125 | | - __string(name, domain->name) |
---|
126 | 116 | __field(u64, iova) |
---|
127 | 117 | __field(size_t, size) |
---|
128 | 118 | __field(size_t, unmapped_size) |
---|
129 | 119 | ), |
---|
130 | 120 | |
---|
131 | 121 | TP_fast_assign( |
---|
132 | | - __assign_str(name, domain->name); |
---|
133 | 122 | __entry->iova = iova; |
---|
134 | 123 | __entry->size = size; |
---|
135 | 124 | __entry->unmapped_size = unmapped_size; |
---|
136 | 125 | ), |
---|
137 | 126 | |
---|
138 | | - TP_printk("IOMMU:%s iova=0x%016llx size=0x%zx unmapped_size=0x%zx", |
---|
139 | | - __get_str(name), __entry->iova, __entry->size, |
---|
140 | | - __entry->unmapped_size |
---|
141 | | - ) |
---|
142 | | -); |
---|
143 | | - |
---|
144 | | -TRACE_EVENT(map_sg, |
---|
145 | | - |
---|
146 | | - TP_PROTO(struct iommu_domain *domain, unsigned long iova, size_t size, |
---|
147 | | - int prot), |
---|
148 | | - |
---|
149 | | - TP_ARGS(domain, iova, size, prot), |
---|
150 | | - |
---|
151 | | - TP_STRUCT__entry( |
---|
152 | | - __string(name, domain->name) |
---|
153 | | - __field(u64, iova) |
---|
154 | | - __field(size_t, size) |
---|
155 | | - __field(int, prot) |
---|
156 | | - ), |
---|
157 | | - |
---|
158 | | - TP_fast_assign( |
---|
159 | | - __assign_str(name, domain->name); |
---|
160 | | - __entry->iova = iova; |
---|
161 | | - __entry->size = size; |
---|
162 | | - __entry->prot = prot; |
---|
163 | | - ), |
---|
164 | | - |
---|
165 | | - TP_printk("IOMMU:%s iova=0x%016llx size=0x%zx prot=0x%x", |
---|
166 | | - __get_str(name), __entry->iova, __entry->size, |
---|
167 | | - __entry->prot |
---|
| 127 | + TP_printk("IOMMU: iova=0x%016llx size=%zu unmapped_size=%zu", |
---|
| 128 | + __entry->iova, __entry->size, __entry->unmapped_size |
---|
168 | 129 | ) |
---|
169 | 130 | ); |
---|
170 | 131 | |
---|
.. | .. |
---|
200 | 161 | |
---|
201 | 162 | TP_ARGS(dev, iova, flags) |
---|
202 | 163 | ); |
---|
203 | | - |
---|
204 | | -DECLARE_EVENT_CLASS(iommu_tlbi, |
---|
205 | | - |
---|
206 | | - TP_PROTO(struct device *dev, u64 time), |
---|
207 | | - |
---|
208 | | - TP_ARGS(dev, time), |
---|
209 | | - |
---|
210 | | - TP_STRUCT__entry( |
---|
211 | | - __string(device, dev_name(dev)) |
---|
212 | | - __field(u64, time) |
---|
213 | | - ), |
---|
214 | | - |
---|
215 | | - TP_fast_assign( |
---|
216 | | - __assign_str(device, dev_name(dev)); |
---|
217 | | - __entry->time = time; |
---|
218 | | - ), |
---|
219 | | - |
---|
220 | | - TP_printk("IOMMU:%s %lld us", |
---|
221 | | - __get_str(device), __entry->time |
---|
222 | | - ) |
---|
223 | | -); |
---|
224 | | - |
---|
225 | | -DEFINE_EVENT(iommu_tlbi, tlbi_start, |
---|
226 | | - |
---|
227 | | - TP_PROTO(struct device *dev, u64 time), |
---|
228 | | - |
---|
229 | | - TP_ARGS(dev, time) |
---|
230 | | -); |
---|
231 | | - |
---|
232 | | -DEFINE_EVENT(iommu_tlbi, tlbi_end, |
---|
233 | | - |
---|
234 | | - TP_PROTO(struct device *dev, u64 time), |
---|
235 | | - |
---|
236 | | - TP_ARGS(dev, time) |
---|
237 | | -); |
---|
238 | | - |
---|
239 | | -DEFINE_EVENT(iommu_tlbi, tlbsync_timeout, |
---|
240 | | - |
---|
241 | | - TP_PROTO(struct device *dev, u64 time), |
---|
242 | | - |
---|
243 | | - TP_ARGS(dev, time) |
---|
244 | | -); |
---|
245 | | - |
---|
246 | | -TRACE_EVENT(smmu_init, |
---|
247 | | - |
---|
248 | | - TP_PROTO(u64 time), |
---|
249 | | - |
---|
250 | | - TP_ARGS(time), |
---|
251 | | - |
---|
252 | | - TP_STRUCT__entry( |
---|
253 | | - __field(u64, time) |
---|
254 | | - ), |
---|
255 | | - |
---|
256 | | - TP_fast_assign( |
---|
257 | | - __entry->time = time; |
---|
258 | | - ), |
---|
259 | | - |
---|
260 | | - TP_printk("ARM SMMU init latency: %lld us", __entry->time) |
---|
261 | | -); |
---|
262 | | - |
---|
263 | 164 | #endif /* _TRACE_IOMMU_H */ |
---|
264 | 165 | |
---|
265 | 166 | /* This part must be outside protection */ |
---|