Linux Audio

Check our new training course

Loading...
v6.8
  1/* SPDX-License-Identifier: GPL-2.0+ */
  2// Copyright 2017 IBM Corp.
  3#undef TRACE_SYSTEM
  4#define TRACE_SYSTEM ocxl
  5
  6#if !defined(_TRACE_OCXL_H) || defined(TRACE_HEADER_MULTI_READ)
  7#define _TRACE_OCXL_H
  8
  9#include <linux/tracepoint.h>
 10
 11
 12TRACE_EVENT(ocxl_mmu_notifier_range,
 13	TP_PROTO(unsigned long start, unsigned long end, unsigned long pidr),
 14	TP_ARGS(start, end, pidr),
 15
 16	TP_STRUCT__entry(
 17		__field(unsigned long, start)
 18		__field(unsigned long, end)
 19		__field(unsigned long, pidr)
 20	),
 21
 22	TP_fast_assign(
 23		__entry->start = start;
 24		__entry->end = end;
 25		__entry->pidr = pidr;
 26	),
 27
 28	TP_printk("start=0x%lx end=0x%lx pidr=0x%lx",
 29		__entry->start,
 30		__entry->end,
 31		__entry->pidr
 32	)
 33);
 34
 35TRACE_EVENT(ocxl_init_mmu_notifier,
 36	TP_PROTO(int pasid, unsigned long pidr),
 37	TP_ARGS(pasid, pidr),
 38
 39	TP_STRUCT__entry(
 40		__field(int, pasid)
 41		__field(unsigned long, pidr)
 42	),
 43
 44	TP_fast_assign(
 45		__entry->pasid = pasid;
 46		__entry->pidr = pidr;
 47	),
 48
 49	TP_printk("pasid=%d, pidr=0x%lx",
 50		__entry->pasid,
 51		__entry->pidr
 52	)
 53);
 54
 55TRACE_EVENT(ocxl_release_mmu_notifier,
 56	TP_PROTO(int pasid, unsigned long pidr),
 57	TP_ARGS(pasid, pidr),
 58
 59	TP_STRUCT__entry(
 60		__field(int, pasid)
 61		__field(unsigned long, pidr)
 62	),
 63
 64	TP_fast_assign(
 65		__entry->pasid = pasid;
 66		__entry->pidr = pidr;
 67	),
 68
 69	TP_printk("pasid=%d, pidr=0x%lx",
 70		__entry->pasid,
 71		__entry->pidr
 72	)
 73);
 74
 75DECLARE_EVENT_CLASS(ocxl_context,
 76	TP_PROTO(pid_t pid, void *spa, int pasid, u32 pidr, u32 tidr),
 77	TP_ARGS(pid, spa, pasid, pidr, tidr),
 78
 79	TP_STRUCT__entry(
 80		__field(pid_t, pid)
 81		__field(void*, spa)
 82		__field(int, pasid)
 83		__field(u32, pidr)
 84		__field(u32, tidr)
 85	),
 86
 87	TP_fast_assign(
 88		__entry->pid = pid;
 89		__entry->spa = spa;
 90		__entry->pasid = pasid;
 91		__entry->pidr = pidr;
 92		__entry->tidr = tidr;
 93	),
 94
 95	TP_printk("linux pid=%d spa=0x%p pasid=0x%x pidr=0x%x tidr=0x%x",
 96		__entry->pid,
 97		__entry->spa,
 98		__entry->pasid,
 99		__entry->pidr,
100		__entry->tidr
101	)
102);
103
104DEFINE_EVENT(ocxl_context, ocxl_context_add,
105	TP_PROTO(pid_t pid, void *spa, int pasid, u32 pidr, u32 tidr),
106	TP_ARGS(pid, spa, pasid, pidr, tidr)
107);
108
109DEFINE_EVENT(ocxl_context, ocxl_context_remove,
110	TP_PROTO(pid_t pid, void *spa, int pasid, u32 pidr, u32 tidr),
111	TP_ARGS(pid, spa, pasid, pidr, tidr)
112);
113
114TRACE_EVENT(ocxl_terminate_pasid,
115	TP_PROTO(int pasid, int rc),
116	TP_ARGS(pasid, rc),
117
118	TP_STRUCT__entry(
119		__field(int, pasid)
120		__field(int, rc)
121	),
122
123	TP_fast_assign(
124		__entry->pasid = pasid;
125		__entry->rc = rc;
126	),
127
128	TP_printk("pasid=0x%x rc=%d",
129		__entry->pasid,
130		__entry->rc
131	)
132);
133
134DECLARE_EVENT_CLASS(ocxl_fault_handler,
135	TP_PROTO(void *spa, u64 pe, u64 dsisr, u64 dar, u64 tfc),
136	TP_ARGS(spa, pe, dsisr, dar, tfc),
137
138	TP_STRUCT__entry(
139		__field(void *, spa)
140		__field(u64, pe)
141		__field(u64, dsisr)
142		__field(u64, dar)
143		__field(u64, tfc)
144	),
145
146	TP_fast_assign(
147		__entry->spa = spa;
148		__entry->pe = pe;
149		__entry->dsisr = dsisr;
150		__entry->dar = dar;
151		__entry->tfc = tfc;
152	),
153
154	TP_printk("spa=%p pe=0x%llx dsisr=0x%llx dar=0x%llx tfc=0x%llx",
155		__entry->spa,
156		__entry->pe,
157		__entry->dsisr,
158		__entry->dar,
159		__entry->tfc
160	)
161);
162
163DEFINE_EVENT(ocxl_fault_handler, ocxl_fault,
164	TP_PROTO(void *spa, u64 pe, u64 dsisr, u64 dar, u64 tfc),
165	TP_ARGS(spa, pe, dsisr, dar, tfc)
166);
167
168DEFINE_EVENT(ocxl_fault_handler, ocxl_fault_ack,
169	TP_PROTO(void *spa, u64 pe, u64 dsisr, u64 dar, u64 tfc),
170	TP_ARGS(spa, pe, dsisr, dar, tfc)
171);
172
173TRACE_EVENT(ocxl_afu_irq_alloc,
174	TP_PROTO(int pasid, int irq_id, unsigned int virq, int hw_irq),
175	TP_ARGS(pasid, irq_id, virq, hw_irq),
176
177	TP_STRUCT__entry(
178		__field(int, pasid)
179		__field(int, irq_id)
180		__field(unsigned int, virq)
181		__field(int, hw_irq)
182	),
183
184	TP_fast_assign(
185		__entry->pasid = pasid;
186		__entry->irq_id = irq_id;
187		__entry->virq = virq;
188		__entry->hw_irq = hw_irq;
189	),
190
191	TP_printk("pasid=0x%x irq_id=%d virq=%u hw_irq=%d",
192		__entry->pasid,
193		__entry->irq_id,
194		__entry->virq,
195		__entry->hw_irq
196	)
197);
198
199TRACE_EVENT(ocxl_afu_irq_free,
200	TP_PROTO(int pasid, int irq_id),
201	TP_ARGS(pasid, irq_id),
202
203	TP_STRUCT__entry(
204		__field(int, pasid)
205		__field(int, irq_id)
206	),
207
208	TP_fast_assign(
209		__entry->pasid = pasid;
210		__entry->irq_id = irq_id;
211	),
212
213	TP_printk("pasid=0x%x irq_id=%d",
214		__entry->pasid,
215		__entry->irq_id
216	)
217);
218
219TRACE_EVENT(ocxl_afu_irq_receive,
220	TP_PROTO(int virq),
221	TP_ARGS(virq),
222
223	TP_STRUCT__entry(
224		__field(int, virq)
225	),
226
227	TP_fast_assign(
228		__entry->virq = virq;
229	),
230
231	TP_printk("virq=%d",
232		__entry->virq
233	)
234);
235
236#endif /* _TRACE_OCXL_H */
237
238/* This part must be outside protection */
239#undef TRACE_INCLUDE_PATH
240#define TRACE_INCLUDE_PATH .
241#define TRACE_INCLUDE_FILE trace
242#include <trace/define_trace.h>
v6.2
  1/* SPDX-License-Identifier: GPL-2.0+ */
  2// Copyright 2017 IBM Corp.
  3#undef TRACE_SYSTEM
  4#define TRACE_SYSTEM ocxl
  5
  6#if !defined(_TRACE_OCXL_H) || defined(TRACE_HEADER_MULTI_READ)
  7#define _TRACE_OCXL_H
  8
  9#include <linux/tracepoint.h>
 10
 11
 12TRACE_EVENT(ocxl_mmu_notifier_range,
 13	TP_PROTO(unsigned long start, unsigned long end, unsigned long pidr),
 14	TP_ARGS(start, end, pidr),
 15
 16	TP_STRUCT__entry(
 17		__field(unsigned long, start)
 18		__field(unsigned long, end)
 19		__field(unsigned long, pidr)
 20	),
 21
 22	TP_fast_assign(
 23		__entry->start = start;
 24		__entry->end = end;
 25		__entry->pidr = pidr;
 26	),
 27
 28	TP_printk("start=0x%lx end=0x%lx pidr=0x%lx",
 29		__entry->start,
 30		__entry->end,
 31		__entry->pidr
 32	)
 33);
 34
 35TRACE_EVENT(ocxl_init_mmu_notifier,
 36	TP_PROTO(int pasid, unsigned long pidr),
 37	TP_ARGS(pasid, pidr),
 38
 39	TP_STRUCT__entry(
 40		__field(int, pasid)
 41		__field(unsigned long, pidr)
 42	),
 43
 44	TP_fast_assign(
 45		__entry->pasid = pasid;
 46		__entry->pidr = pidr;
 47	),
 48
 49	TP_printk("pasid=%d, pidr=0x%lx",
 50		__entry->pasid,
 51		__entry->pidr
 52	)
 53);
 54
 55TRACE_EVENT(ocxl_release_mmu_notifier,
 56	TP_PROTO(int pasid, unsigned long pidr),
 57	TP_ARGS(pasid, pidr),
 58
 59	TP_STRUCT__entry(
 60		__field(int, pasid)
 61		__field(unsigned long, pidr)
 62	),
 63
 64	TP_fast_assign(
 65		__entry->pasid = pasid;
 66		__entry->pidr = pidr;
 67	),
 68
 69	TP_printk("pasid=%d, pidr=0x%lx",
 70		__entry->pasid,
 71		__entry->pidr
 72	)
 73);
 74
 75DECLARE_EVENT_CLASS(ocxl_context,
 76	TP_PROTO(pid_t pid, void *spa, int pasid, u32 pidr, u32 tidr),
 77	TP_ARGS(pid, spa, pasid, pidr, tidr),
 78
 79	TP_STRUCT__entry(
 80		__field(pid_t, pid)
 81		__field(void*, spa)
 82		__field(int, pasid)
 83		__field(u32, pidr)
 84		__field(u32, tidr)
 85	),
 86
 87	TP_fast_assign(
 88		__entry->pid = pid;
 89		__entry->spa = spa;
 90		__entry->pasid = pasid;
 91		__entry->pidr = pidr;
 92		__entry->tidr = tidr;
 93	),
 94
 95	TP_printk("linux pid=%d spa=0x%p pasid=0x%x pidr=0x%x tidr=0x%x",
 96		__entry->pid,
 97		__entry->spa,
 98		__entry->pasid,
 99		__entry->pidr,
100		__entry->tidr
101	)
102);
103
104DEFINE_EVENT(ocxl_context, ocxl_context_add,
105	TP_PROTO(pid_t pid, void *spa, int pasid, u32 pidr, u32 tidr),
106	TP_ARGS(pid, spa, pasid, pidr, tidr)
107);
108
109DEFINE_EVENT(ocxl_context, ocxl_context_remove,
110	TP_PROTO(pid_t pid, void *spa, int pasid, u32 pidr, u32 tidr),
111	TP_ARGS(pid, spa, pasid, pidr, tidr)
112);
113
114TRACE_EVENT(ocxl_terminate_pasid,
115	TP_PROTO(int pasid, int rc),
116	TP_ARGS(pasid, rc),
117
118	TP_STRUCT__entry(
119		__field(int, pasid)
120		__field(int, rc)
121	),
122
123	TP_fast_assign(
124		__entry->pasid = pasid;
125		__entry->rc = rc;
126	),
127
128	TP_printk("pasid=0x%x rc=%d",
129		__entry->pasid,
130		__entry->rc
131	)
132);
133
134DECLARE_EVENT_CLASS(ocxl_fault_handler,
135	TP_PROTO(void *spa, u64 pe, u64 dsisr, u64 dar, u64 tfc),
136	TP_ARGS(spa, pe, dsisr, dar, tfc),
137
138	TP_STRUCT__entry(
139		__field(void *, spa)
140		__field(u64, pe)
141		__field(u64, dsisr)
142		__field(u64, dar)
143		__field(u64, tfc)
144	),
145
146	TP_fast_assign(
147		__entry->spa = spa;
148		__entry->pe = pe;
149		__entry->dsisr = dsisr;
150		__entry->dar = dar;
151		__entry->tfc = tfc;
152	),
153
154	TP_printk("spa=%p pe=0x%llx dsisr=0x%llx dar=0x%llx tfc=0x%llx",
155		__entry->spa,
156		__entry->pe,
157		__entry->dsisr,
158		__entry->dar,
159		__entry->tfc
160	)
161);
162
163DEFINE_EVENT(ocxl_fault_handler, ocxl_fault,
164	TP_PROTO(void *spa, u64 pe, u64 dsisr, u64 dar, u64 tfc),
165	TP_ARGS(spa, pe, dsisr, dar, tfc)
166);
167
168DEFINE_EVENT(ocxl_fault_handler, ocxl_fault_ack,
169	TP_PROTO(void *spa, u64 pe, u64 dsisr, u64 dar, u64 tfc),
170	TP_ARGS(spa, pe, dsisr, dar, tfc)
171);
172
173TRACE_EVENT(ocxl_afu_irq_alloc,
174	TP_PROTO(int pasid, int irq_id, unsigned int virq, int hw_irq),
175	TP_ARGS(pasid, irq_id, virq, hw_irq),
176
177	TP_STRUCT__entry(
178		__field(int, pasid)
179		__field(int, irq_id)
180		__field(unsigned int, virq)
181		__field(int, hw_irq)
182	),
183
184	TP_fast_assign(
185		__entry->pasid = pasid;
186		__entry->irq_id = irq_id;
187		__entry->virq = virq;
188		__entry->hw_irq = hw_irq;
189	),
190
191	TP_printk("pasid=0x%x irq_id=%d virq=%u hw_irq=%d",
192		__entry->pasid,
193		__entry->irq_id,
194		__entry->virq,
195		__entry->hw_irq
196	)
197);
198
199TRACE_EVENT(ocxl_afu_irq_free,
200	TP_PROTO(int pasid, int irq_id),
201	TP_ARGS(pasid, irq_id),
202
203	TP_STRUCT__entry(
204		__field(int, pasid)
205		__field(int, irq_id)
206	),
207
208	TP_fast_assign(
209		__entry->pasid = pasid;
210		__entry->irq_id = irq_id;
211	),
212
213	TP_printk("pasid=0x%x irq_id=%d",
214		__entry->pasid,
215		__entry->irq_id
216	)
217);
218
219TRACE_EVENT(ocxl_afu_irq_receive,
220	TP_PROTO(int virq),
221	TP_ARGS(virq),
222
223	TP_STRUCT__entry(
224		__field(int, virq)
225	),
226
227	TP_fast_assign(
228		__entry->virq = virq;
229	),
230
231	TP_printk("virq=%d",
232		__entry->virq
233	)
234);
235
236#endif /* _TRACE_OCXL_H */
237
238/* This part must be outside protection */
239#undef TRACE_INCLUDE_PATH
240#define TRACE_INCLUDE_PATH .
241#define TRACE_INCLUDE_FILE trace
242#include <trace/define_trace.h>