xref: /linux/include/trace/events/dma_buf.h (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1281a2263Sgaoxiang17 /* SPDX-License-Identifier: GPL-2.0 */
2281a2263Sgaoxiang17 #undef TRACE_SYSTEM
3281a2263Sgaoxiang17 #define TRACE_SYSTEM dma_buf
4281a2263Sgaoxiang17 
5281a2263Sgaoxiang17 #if !defined(_TRACE_DMA_BUF_H) || defined(TRACE_HEADER_MULTI_READ)
6281a2263Sgaoxiang17 #define _TRACE_DMA_BUF_H
7281a2263Sgaoxiang17 
8281a2263Sgaoxiang17 #include <linux/dma-buf.h>
9281a2263Sgaoxiang17 #include <linux/tracepoint.h>
10281a2263Sgaoxiang17 
11281a2263Sgaoxiang17 DECLARE_EVENT_CLASS(dma_buf,
12281a2263Sgaoxiang17 
13281a2263Sgaoxiang17 	TP_PROTO(struct dma_buf *dmabuf),
14281a2263Sgaoxiang17 
15281a2263Sgaoxiang17 	TP_ARGS(dmabuf),
16281a2263Sgaoxiang17 
17281a2263Sgaoxiang17 	TP_STRUCT__entry(
18281a2263Sgaoxiang17 		__string(	exp_name,		dmabuf->exp_name)
19281a2263Sgaoxiang17 		__field(	size_t,			size)
20281a2263Sgaoxiang17 		__field(	ino_t,			ino)
21281a2263Sgaoxiang17 	),
22281a2263Sgaoxiang17 
23281a2263Sgaoxiang17 	TP_fast_assign(
24281a2263Sgaoxiang17 		__assign_str(exp_name);
25281a2263Sgaoxiang17 		__entry->size	= dmabuf->size;
26281a2263Sgaoxiang17 		__entry->ino	= dmabuf->file->f_inode->i_ino;
27281a2263Sgaoxiang17 	),
28281a2263Sgaoxiang17 
29281a2263Sgaoxiang17 	TP_printk("exp_name=%s size=%zu ino=%lu",
30281a2263Sgaoxiang17 		  __get_str(exp_name),
31281a2263Sgaoxiang17 		  __entry->size,
32281a2263Sgaoxiang17 		  __entry->ino)
33281a2263Sgaoxiang17 );
34281a2263Sgaoxiang17 
35281a2263Sgaoxiang17 DECLARE_EVENT_CLASS(dma_buf_attach_dev,
36281a2263Sgaoxiang17 
37281a2263Sgaoxiang17 	TP_PROTO(struct dma_buf *dmabuf, struct dma_buf_attachment *attach,
38281a2263Sgaoxiang17 		bool is_dynamic, struct device *dev),
39281a2263Sgaoxiang17 
40281a2263Sgaoxiang17 	TP_ARGS(dmabuf, attach, is_dynamic, dev),
41281a2263Sgaoxiang17 
42281a2263Sgaoxiang17 	TP_STRUCT__entry(
43281a2263Sgaoxiang17 		__string(	dev_name,			dev_name(dev))
44281a2263Sgaoxiang17 		__string(	exp_name,			dmabuf->exp_name)
45281a2263Sgaoxiang17 		__field(	size_t,				size)
46281a2263Sgaoxiang17 		__field(	ino_t,				ino)
47281a2263Sgaoxiang17 		__field(	struct dma_buf_attachment *,	attach)
48281a2263Sgaoxiang17 		__field(	bool,				is_dynamic)
49281a2263Sgaoxiang17 	),
50281a2263Sgaoxiang17 
51281a2263Sgaoxiang17 	TP_fast_assign(
52281a2263Sgaoxiang17 		__assign_str(dev_name);
53281a2263Sgaoxiang17 		__assign_str(exp_name);
54281a2263Sgaoxiang17 		__entry->size		= dmabuf->size;
55281a2263Sgaoxiang17 		__entry->ino		= dmabuf->file->f_inode->i_ino;
56281a2263Sgaoxiang17 		__entry->is_dynamic	= is_dynamic;
57281a2263Sgaoxiang17 		__entry->attach		= attach;
58281a2263Sgaoxiang17 	),
59281a2263Sgaoxiang17 
60281a2263Sgaoxiang17 	TP_printk("exp_name=%s size=%zu ino=%lu attachment:%p is_dynamic=%d dev_name=%s",
61281a2263Sgaoxiang17 		  __get_str(exp_name),
62281a2263Sgaoxiang17 		  __entry->size,
63281a2263Sgaoxiang17 		  __entry->ino,
64281a2263Sgaoxiang17 		  __entry->attach,
65281a2263Sgaoxiang17 		  __entry->is_dynamic,
66281a2263Sgaoxiang17 		  __get_str(dev_name))
67281a2263Sgaoxiang17 );
68281a2263Sgaoxiang17 
69281a2263Sgaoxiang17 DECLARE_EVENT_CLASS(dma_buf_fd,
70281a2263Sgaoxiang17 
71281a2263Sgaoxiang17 	TP_PROTO(struct dma_buf *dmabuf, int fd),
72281a2263Sgaoxiang17 
73281a2263Sgaoxiang17 	TP_ARGS(dmabuf, fd),
74281a2263Sgaoxiang17 
75281a2263Sgaoxiang17 	TP_STRUCT__entry(
76281a2263Sgaoxiang17 		__string(	exp_name,		dmabuf->exp_name)
77281a2263Sgaoxiang17 		__field(	size_t,			size)
78281a2263Sgaoxiang17 		__field(	ino_t,			ino)
79281a2263Sgaoxiang17 		__field(	int,			fd)
80281a2263Sgaoxiang17 	),
81281a2263Sgaoxiang17 
82281a2263Sgaoxiang17 	TP_fast_assign(
83281a2263Sgaoxiang17 		__assign_str(exp_name);
84281a2263Sgaoxiang17 		__entry->size	= dmabuf->size;
85281a2263Sgaoxiang17 		__entry->ino	= dmabuf->file->f_inode->i_ino;
86281a2263Sgaoxiang17 		__entry->fd	= fd;
87281a2263Sgaoxiang17 	),
88281a2263Sgaoxiang17 
89281a2263Sgaoxiang17 	TP_printk("exp_name=%s size=%zu ino=%lu fd=%d",
90281a2263Sgaoxiang17 		  __get_str(exp_name),
91281a2263Sgaoxiang17 		  __entry->size,
92281a2263Sgaoxiang17 		  __entry->ino,
93281a2263Sgaoxiang17 		  __entry->fd)
94281a2263Sgaoxiang17 );
95281a2263Sgaoxiang17 
96281a2263Sgaoxiang17 DEFINE_EVENT(dma_buf, dma_buf_export,
97281a2263Sgaoxiang17 
98281a2263Sgaoxiang17 	TP_PROTO(struct dma_buf *dmabuf),
99281a2263Sgaoxiang17 
100281a2263Sgaoxiang17 	TP_ARGS(dmabuf)
101281a2263Sgaoxiang17 );
102281a2263Sgaoxiang17 
103281a2263Sgaoxiang17 DEFINE_EVENT(dma_buf, dma_buf_mmap_internal,
104281a2263Sgaoxiang17 
105281a2263Sgaoxiang17 	TP_PROTO(struct dma_buf *dmabuf),
106281a2263Sgaoxiang17 
107281a2263Sgaoxiang17 	TP_ARGS(dmabuf)
108281a2263Sgaoxiang17 );
109281a2263Sgaoxiang17 
110281a2263Sgaoxiang17 DEFINE_EVENT(dma_buf, dma_buf_mmap,
111281a2263Sgaoxiang17 
112281a2263Sgaoxiang17 	TP_PROTO(struct dma_buf *dmabuf),
113281a2263Sgaoxiang17 
114281a2263Sgaoxiang17 	TP_ARGS(dmabuf)
115281a2263Sgaoxiang17 );
116281a2263Sgaoxiang17 
117281a2263Sgaoxiang17 DEFINE_EVENT(dma_buf, dma_buf_put,
118281a2263Sgaoxiang17 
119281a2263Sgaoxiang17 	TP_PROTO(struct dma_buf *dmabuf),
120281a2263Sgaoxiang17 
121281a2263Sgaoxiang17 	TP_ARGS(dmabuf)
122281a2263Sgaoxiang17 );
123281a2263Sgaoxiang17 
124281a2263Sgaoxiang17 DEFINE_EVENT(dma_buf_attach_dev, dma_buf_dynamic_attach,
125281a2263Sgaoxiang17 
126281a2263Sgaoxiang17 	TP_PROTO(struct dma_buf *dmabuf, struct dma_buf_attachment *attach,
127281a2263Sgaoxiang17 		bool is_dynamic, struct device *dev),
128281a2263Sgaoxiang17 
129281a2263Sgaoxiang17 	TP_ARGS(dmabuf, attach, is_dynamic, dev)
130281a2263Sgaoxiang17 );
131281a2263Sgaoxiang17 
132281a2263Sgaoxiang17 DEFINE_EVENT(dma_buf_attach_dev, dma_buf_detach,
133281a2263Sgaoxiang17 
134281a2263Sgaoxiang17 	TP_PROTO(struct dma_buf *dmabuf, struct dma_buf_attachment *attach,
135281a2263Sgaoxiang17 		bool is_dynamic, struct device *dev),
136281a2263Sgaoxiang17 
137281a2263Sgaoxiang17 	TP_ARGS(dmabuf, attach, is_dynamic, dev)
138281a2263Sgaoxiang17 );
139281a2263Sgaoxiang17 
140*3b3ddafdSgaoxiang17 DEFINE_EVENT_CONDITION(dma_buf_fd, dma_buf_fd,
141281a2263Sgaoxiang17 
142281a2263Sgaoxiang17 	TP_PROTO(struct dma_buf *dmabuf, int fd),
143281a2263Sgaoxiang17 
144*3b3ddafdSgaoxiang17 	TP_ARGS(dmabuf, fd),
145*3b3ddafdSgaoxiang17 
146*3b3ddafdSgaoxiang17 	TP_CONDITION(fd >= 0)
147281a2263Sgaoxiang17 );
148281a2263Sgaoxiang17 
149281a2263Sgaoxiang17 DEFINE_EVENT(dma_buf_fd, dma_buf_get,
150281a2263Sgaoxiang17 
151281a2263Sgaoxiang17 	TP_PROTO(struct dma_buf *dmabuf, int fd),
152281a2263Sgaoxiang17 
153281a2263Sgaoxiang17 	TP_ARGS(dmabuf, fd)
154281a2263Sgaoxiang17 );
155281a2263Sgaoxiang17 
156281a2263Sgaoxiang17 #endif /* _TRACE_DMA_BUF_H */
157281a2263Sgaoxiang17 
158281a2263Sgaoxiang17 /* This part must be outside protection */
159281a2263Sgaoxiang17 #include <trace/define_trace.h>
160