Linux Audio

Check our new training course

Loading...
v5.4
  1/* SPDX-License-Identifier: GPL-2.0 */
  2/*
  3 * Intel IOMMU trace support
  4 *
  5 * Copyright (C) 2019 Intel Corporation
  6 *
  7 * Author: Lu Baolu <baolu.lu@linux.intel.com>
  8 */
  9#ifdef CONFIG_INTEL_IOMMU
 10#undef TRACE_SYSTEM
 11#define TRACE_SYSTEM intel_iommu
 12
 13#if !defined(_TRACE_INTEL_IOMMU_H) || defined(TRACE_HEADER_MULTI_READ)
 14#define _TRACE_INTEL_IOMMU_H
 15
 16#include <linux/tracepoint.h>
 17#include <linux/intel-iommu.h>
 18
 19DECLARE_EVENT_CLASS(dma_map,
 20	TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr,
 21		 size_t size),
 22
 23	TP_ARGS(dev, dev_addr, phys_addr, size),
 24
 25	TP_STRUCT__entry(
 26		__string(dev_name, dev_name(dev))
 27		__field(dma_addr_t, dev_addr)
 28		__field(phys_addr_t, phys_addr)
 29		__field(size_t,	size)
 30	),
 31
 32	TP_fast_assign(
 33		__assign_str(dev_name, dev_name(dev));
 34		__entry->dev_addr = dev_addr;
 35		__entry->phys_addr = phys_addr;
 36		__entry->size = size;
 37	),
 38
 39	TP_printk("dev=%s dev_addr=0x%llx phys_addr=0x%llx size=%zu",
 40		  __get_str(dev_name),
 41		  (unsigned long long)__entry->dev_addr,
 42		  (unsigned long long)__entry->phys_addr,
 43		  __entry->size)
 44);
 45
 46DEFINE_EVENT(dma_map, map_single,
 47	TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr,
 48		 size_t size),
 49	TP_ARGS(dev, dev_addr, phys_addr, size)
 50);
 51
 52DEFINE_EVENT(dma_map, map_sg,
 53	TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr,
 54		 size_t size),
 55	TP_ARGS(dev, dev_addr, phys_addr, size)
 56);
 57
 58DEFINE_EVENT(dma_map, bounce_map_single,
 59	TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr,
 60		 size_t size),
 61	TP_ARGS(dev, dev_addr, phys_addr, size)
 62);
 63
 64DECLARE_EVENT_CLASS(dma_unmap,
 65	TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
 66
 67	TP_ARGS(dev, dev_addr, size),
 68
 69	TP_STRUCT__entry(
 70		__string(dev_name, dev_name(dev))
 71		__field(dma_addr_t, dev_addr)
 72		__field(size_t,	size)
 73	),
 74
 75	TP_fast_assign(
 76		__assign_str(dev_name, dev_name(dev));
 77		__entry->dev_addr = dev_addr;
 78		__entry->size = size;
 79	),
 80
 81	TP_printk("dev=%s dev_addr=0x%llx size=%zu",
 82		  __get_str(dev_name),
 83		  (unsigned long long)__entry->dev_addr,
 84		  __entry->size)
 85);
 86
 87DEFINE_EVENT(dma_unmap, unmap_single,
 88	TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
 89	TP_ARGS(dev, dev_addr, size)
 90);
 91
 92DEFINE_EVENT(dma_unmap, unmap_sg,
 93	TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
 94	TP_ARGS(dev, dev_addr, size)
 95);
 96
 97DEFINE_EVENT(dma_unmap, bounce_unmap_single,
 98	TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
 99	TP_ARGS(dev, dev_addr, size)
100);
101
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102#endif /* _TRACE_INTEL_IOMMU_H */
103
104/* This part must be outside protection */
105#include <trace/define_trace.h>
106#endif /* CONFIG_INTEL_IOMMU */
v5.9
  1/* SPDX-License-Identifier: GPL-2.0 */
  2/*
  3 * Intel IOMMU trace support
  4 *
  5 * Copyright (C) 2019 Intel Corporation
  6 *
  7 * Author: Lu Baolu <baolu.lu@linux.intel.com>
  8 */
  9#ifdef CONFIG_INTEL_IOMMU
 10#undef TRACE_SYSTEM
 11#define TRACE_SYSTEM intel_iommu
 12
 13#if !defined(_TRACE_INTEL_IOMMU_H) || defined(TRACE_HEADER_MULTI_READ)
 14#define _TRACE_INTEL_IOMMU_H
 15
 16#include <linux/tracepoint.h>
 17#include <linux/intel-iommu.h>
 18
 19DECLARE_EVENT_CLASS(dma_map,
 20	TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr,
 21		 size_t size),
 22
 23	TP_ARGS(dev, dev_addr, phys_addr, size),
 24
 25	TP_STRUCT__entry(
 26		__string(dev_name, dev_name(dev))
 27		__field(dma_addr_t, dev_addr)
 28		__field(phys_addr_t, phys_addr)
 29		__field(size_t,	size)
 30	),
 31
 32	TP_fast_assign(
 33		__assign_str(dev_name, dev_name(dev));
 34		__entry->dev_addr = dev_addr;
 35		__entry->phys_addr = phys_addr;
 36		__entry->size = size;
 37	),
 38
 39	TP_printk("dev=%s dev_addr=0x%llx phys_addr=0x%llx size=%zu",
 40		  __get_str(dev_name),
 41		  (unsigned long long)__entry->dev_addr,
 42		  (unsigned long long)__entry->phys_addr,
 43		  __entry->size)
 44);
 45
 46DEFINE_EVENT(dma_map, map_single,
 47	TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr,
 48		 size_t size),
 49	TP_ARGS(dev, dev_addr, phys_addr, size)
 50);
 51
 
 
 
 
 
 
 52DEFINE_EVENT(dma_map, bounce_map_single,
 53	TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr,
 54		 size_t size),
 55	TP_ARGS(dev, dev_addr, phys_addr, size)
 56);
 57
 58DECLARE_EVENT_CLASS(dma_unmap,
 59	TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
 60
 61	TP_ARGS(dev, dev_addr, size),
 62
 63	TP_STRUCT__entry(
 64		__string(dev_name, dev_name(dev))
 65		__field(dma_addr_t, dev_addr)
 66		__field(size_t,	size)
 67	),
 68
 69	TP_fast_assign(
 70		__assign_str(dev_name, dev_name(dev));
 71		__entry->dev_addr = dev_addr;
 72		__entry->size = size;
 73	),
 74
 75	TP_printk("dev=%s dev_addr=0x%llx size=%zu",
 76		  __get_str(dev_name),
 77		  (unsigned long long)__entry->dev_addr,
 78		  __entry->size)
 79);
 80
 81DEFINE_EVENT(dma_unmap, unmap_single,
 82	TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
 83	TP_ARGS(dev, dev_addr, size)
 84);
 85
 86DEFINE_EVENT(dma_unmap, unmap_sg,
 87	TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
 88	TP_ARGS(dev, dev_addr, size)
 89);
 90
 91DEFINE_EVENT(dma_unmap, bounce_unmap_single,
 92	TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
 93	TP_ARGS(dev, dev_addr, size)
 94);
 95
 96DECLARE_EVENT_CLASS(dma_map_sg,
 97	TP_PROTO(struct device *dev, int index, int total,
 98		 struct scatterlist *sg),
 99
100	TP_ARGS(dev, index, total, sg),
101
102	TP_STRUCT__entry(
103		__string(dev_name, dev_name(dev))
104		__field(dma_addr_t, dev_addr)
105		__field(phys_addr_t, phys_addr)
106		__field(size_t,	size)
107		__field(int, index)
108		__field(int, total)
109	),
110
111	TP_fast_assign(
112		__assign_str(dev_name, dev_name(dev));
113		__entry->dev_addr = sg->dma_address;
114		__entry->phys_addr = sg_phys(sg);
115		__entry->size = sg->dma_length;
116		__entry->index = index;
117		__entry->total = total;
118	),
119
120	TP_printk("dev=%s [%d/%d] dev_addr=0x%llx phys_addr=0x%llx size=%zu",
121		  __get_str(dev_name), __entry->index, __entry->total,
122		  (unsigned long long)__entry->dev_addr,
123		  (unsigned long long)__entry->phys_addr,
124		  __entry->size)
125);
126
127DEFINE_EVENT(dma_map_sg, map_sg,
128	TP_PROTO(struct device *dev, int index, int total,
129		 struct scatterlist *sg),
130	TP_ARGS(dev, index, total, sg)
131);
132
133DEFINE_EVENT(dma_map_sg, bounce_map_sg,
134	TP_PROTO(struct device *dev, int index, int total,
135		 struct scatterlist *sg),
136	TP_ARGS(dev, index, total, sg)
137);
138#endif /* _TRACE_INTEL_IOMMU_H */
139
140/* This part must be outside protection */
141#include <trace/define_trace.h>
142#endif /* CONFIG_INTEL_IOMMU */