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