0001
0002 #undef TRACE_SYSTEM
0003 #define TRACE_SYSTEM swiotlb
0004
0005 #if !defined(_TRACE_SWIOTLB_H) || defined(TRACE_HEADER_MULTI_READ)
0006 #define _TRACE_SWIOTLB_H
0007
0008 #include <linux/tracepoint.h>
0009
0010 TRACE_EVENT(swiotlb_bounced,
0011 TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
0012 TP_ARGS(dev, dev_addr, size),
0013
0014 TP_STRUCT__entry(
0015 __string(dev_name, dev_name(dev))
0016 __field(u64, dma_mask)
0017 __field(dma_addr_t, dev_addr)
0018 __field(size_t, size)
0019 __field(bool, force)
0020 ),
0021
0022 TP_fast_assign(
0023 __assign_str(dev_name, dev_name(dev));
0024 __entry->dma_mask = (dev->dma_mask ? *dev->dma_mask : 0);
0025 __entry->dev_addr = dev_addr;
0026 __entry->size = size;
0027 __entry->force = is_swiotlb_force_bounce(dev);
0028 ),
0029
0030 TP_printk("dev_name: %s dma_mask=%llx dev_addr=%llx size=%zu %s",
0031 __get_str(dev_name),
0032 __entry->dma_mask,
0033 (unsigned long long)__entry->dev_addr,
0034 __entry->size,
0035 __entry->force ? "FORCE" : "NORMAL")
0036 );
0037
0038 #endif
0039
0040
0041 #include <trace/define_trace.h>