blob: 4d13e510590e7b9a56ca8a57ef4a2737200f55ff [file] [log] [blame]
Alexey Kardashevskiy7f928912018-12-20 12:10:36 +11001/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * VFIO PCI mmap/mmap_fault tracepoints
4 *
5 * Copyright (C) 2018 IBM Corp. All rights reserved.
6 * Author: Alexey Kardashevskiy <aik@ozlabs.ru>
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 */
12
13#undef TRACE_SYSTEM
14#define TRACE_SYSTEM vfio_pci
15
16#if !defined(_TRACE_VFIO_PCI_H) || defined(TRACE_HEADER_MULTI_READ)
17#define _TRACE_VFIO_PCI_H
18
19#include <linux/tracepoint.h>
20
21TRACE_EVENT(vfio_pci_nvgpu_mmap_fault,
22 TP_PROTO(struct pci_dev *pdev, unsigned long hpa, unsigned long ua,
23 vm_fault_t ret),
24 TP_ARGS(pdev, hpa, ua, ret),
25
26 TP_STRUCT__entry(
27 __field(const char *, name)
28 __field(unsigned long, hpa)
29 __field(unsigned long, ua)
30 __field(int, ret)
31 ),
32
33 TP_fast_assign(
34 __entry->name = dev_name(&pdev->dev),
35 __entry->hpa = hpa;
36 __entry->ua = ua;
37 __entry->ret = ret;
38 ),
39
40 TP_printk("%s: %lx -> %lx ret=%d", __entry->name, __entry->hpa,
41 __entry->ua, __entry->ret)
42);
43
44TRACE_EVENT(vfio_pci_nvgpu_mmap,
45 TP_PROTO(struct pci_dev *pdev, unsigned long hpa, unsigned long ua,
46 unsigned long size, int ret),
47 TP_ARGS(pdev, hpa, ua, size, ret),
48
49 TP_STRUCT__entry(
50 __field(const char *, name)
51 __field(unsigned long, hpa)
52 __field(unsigned long, ua)
53 __field(unsigned long, size)
54 __field(int, ret)
55 ),
56
57 TP_fast_assign(
58 __entry->name = dev_name(&pdev->dev),
59 __entry->hpa = hpa;
60 __entry->ua = ua;
61 __entry->size = size;
62 __entry->ret = ret;
63 ),
64
65 TP_printk("%s: %lx -> %lx size=%lx ret=%d", __entry->name, __entry->hpa,
66 __entry->ua, __entry->size, __entry->ret)
67);
68
69TRACE_EVENT(vfio_pci_npu2_mmap,
70 TP_PROTO(struct pci_dev *pdev, unsigned long hpa, unsigned long ua,
71 unsigned long size, int ret),
72 TP_ARGS(pdev, hpa, ua, size, ret),
73
74 TP_STRUCT__entry(
75 __field(const char *, name)
76 __field(unsigned long, hpa)
77 __field(unsigned long, ua)
78 __field(unsigned long, size)
79 __field(int, ret)
80 ),
81
82 TP_fast_assign(
83 __entry->name = dev_name(&pdev->dev),
84 __entry->hpa = hpa;
85 __entry->ua = ua;
86 __entry->size = size;
87 __entry->ret = ret;
88 ),
89
90 TP_printk("%s: %lx -> %lx size=%lx ret=%d", __entry->name, __entry->hpa,
91 __entry->ua, __entry->size, __entry->ret)
92);
93
94#endif /* _TRACE_VFIO_PCI_H */
95
96#undef TRACE_INCLUDE_PATH
Masahiro Yamadad1fc1172019-01-08 12:08:03 +090097#define TRACE_INCLUDE_PATH ../../drivers/vfio/pci
Alexey Kardashevskiy7f928912018-12-20 12:10:36 +110098#undef TRACE_INCLUDE_FILE
99#define TRACE_INCLUDE_FILE trace
100
101/* This part must be outside protection */
102#include <trace/define_trace.h>