summaryrefslogtreecommitdiff
path: root/include/trace/events/swiotlb.h
blob: 288c0c54a2b4ace63a94549c136fe255e2982089 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#undef TRACE_SYSTEM
#define TRACE_SYSTEM swiotlb

#if !defined(_TRACE_SWIOTLB_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_SWIOTLB_H

#include <linux/tracepoint.h>

TRACE_EVENT(swiotlb_bounced,

	TP_PROTO(struct device *dev,
		 dma_addr_t dev_addr,
		 size_t size,
		 enum swiotlb_force swiotlb_force),

	TP_ARGS(dev, dev_addr, size, swiotlb_force),

	TP_STRUCT__entry(
		__string(	dev_name,	dev_name(dev)		)
		__field(	u64,	dma_mask			)
		__field(	dma_addr_t,	dev_addr		)
		__field(	size_t,	size				)
		__field(	enum swiotlb_force,	swiotlb_force	)
	),

	TP_fast_assign(
		__assign_str(dev_name, dev_name(dev));
		__entry->dma_mask = (dev->dma_mask ? *dev->dma_mask : 0);
		__entry->dev_addr = dev_addr;
		__entry->size = size;
		__entry->swiotlb_force = swiotlb_force;
	),

	TP_printk("dev_name: %s dma_mask=%llx dev_addr=%llx "
		"size=%zu %s",
		__get_str(dev_name),
		__entry->dma_mask,
		(unsigned long long)__entry->dev_addr,
		__entry->size,
		__print_symbolic(__entry->swiotlb_force,
			{ SWIOTLB_NORMAL,	"NORMAL" },
			{ SWIOTLB_FORCE,	"FORCE" },
			{ SWIOTLB_NO_FORCE,	"NO_FORCE" }))
);

#endif /*  _TRACE_SWIOTLB_H */

/* This part must be outside protection */
#include <trace/define_trace.h>
executing user pages. We can catch that earlier, even before we do find_vma. It is never valid on powerpc for the kernel to take an exec fault to begin with. So fold that test with the existing test for the kernel faulting on kernel addresses to bail out early. Fixes: 1d18ad026844 ("powerpc/mm: Detect instruction fetch denied and report") Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Acked-by: Balbir Singh <bsingharora@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'include/net/act_api.h')