1145eba1aSCai Huoqing /* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */ 234ab4de7SMichael J. Ruhl /* 334ab4de7SMichael J. Ruhl * Copyright(c) 2017 Intel Corporation. 434ab4de7SMichael J. Ruhl */ 5145eba1aSCai Huoqing 634ab4de7SMichael J. Ruhl #if !defined(__HFI1_TRACE_MMU_H) || defined(TRACE_HEADER_MULTI_READ) 734ab4de7SMichael J. Ruhl #define __HFI1_TRACE_MMU_H 834ab4de7SMichael J. Ruhl 934ab4de7SMichael J. Ruhl #include <linux/tracepoint.h> 1034ab4de7SMichael J. Ruhl #include <linux/trace_seq.h> 1134ab4de7SMichael J. Ruhl 1234ab4de7SMichael J. Ruhl #include "hfi.h" 1334ab4de7SMichael J. Ruhl 1434ab4de7SMichael J. Ruhl #undef TRACE_SYSTEM 1534ab4de7SMichael J. Ruhl #define TRACE_SYSTEM hfi1_mmu 1634ab4de7SMichael J. Ruhl 1734ab4de7SMichael J. Ruhl DECLARE_EVENT_CLASS(hfi1_mmu_rb_template, 18*e236e2eaSBrendan Cunningham TP_PROTO(struct mmu_rb_node *node), 19*e236e2eaSBrendan Cunningham TP_ARGS(node), 20*e236e2eaSBrendan Cunningham TP_STRUCT__entry(__field(unsigned long, addr) 21*e236e2eaSBrendan Cunningham __field(unsigned long, len) 22*e236e2eaSBrendan Cunningham __field(unsigned int, refcount) 23*e236e2eaSBrendan Cunningham ), 24*e236e2eaSBrendan Cunningham TP_fast_assign(__entry->addr = node->addr; 25*e236e2eaSBrendan Cunningham __entry->len = node->len; 26*e236e2eaSBrendan Cunningham __entry->refcount = kref_read(&node->refcount); 27*e236e2eaSBrendan Cunningham ), 28*e236e2eaSBrendan Cunningham TP_printk("MMU node addr 0x%lx, len %lu, refcount %u", 29*e236e2eaSBrendan Cunningham __entry->addr, 30*e236e2eaSBrendan Cunningham __entry->len, 31*e236e2eaSBrendan Cunningham __entry->refcount 32*e236e2eaSBrendan Cunningham ) 33*e236e2eaSBrendan Cunningham ); 34*e236e2eaSBrendan Cunningham 35*e236e2eaSBrendan Cunningham DEFINE_EVENT(hfi1_mmu_rb_template, hfi1_mmu_rb_insert, 36*e236e2eaSBrendan Cunningham TP_PROTO(struct mmu_rb_node *node), 37*e236e2eaSBrendan Cunningham TP_ARGS(node)); 38*e236e2eaSBrendan Cunningham 39*e236e2eaSBrendan Cunningham TRACE_EVENT(hfi1_mmu_rb_search, 4034ab4de7SMichael J. Ruhl TP_PROTO(unsigned long addr, unsigned long len), 4134ab4de7SMichael J. Ruhl TP_ARGS(addr, len), 4234ab4de7SMichael J. Ruhl TP_STRUCT__entry(__field(unsigned long, addr) 4334ab4de7SMichael J. Ruhl __field(unsigned long, len) 4434ab4de7SMichael J. Ruhl ), 4534ab4de7SMichael J. Ruhl TP_fast_assign(__entry->addr = addr; 4634ab4de7SMichael J. Ruhl __entry->len = len; 4734ab4de7SMichael J. Ruhl ), 4834ab4de7SMichael J. Ruhl TP_printk("MMU node addr 0x%lx, len %lu", 4934ab4de7SMichael J. Ruhl __entry->addr, 5034ab4de7SMichael J. Ruhl __entry->len 5134ab4de7SMichael J. Ruhl ) 5234ab4de7SMichael J. Ruhl ); 5334ab4de7SMichael J. Ruhl 5434ab4de7SMichael J. Ruhl DEFINE_EVENT(hfi1_mmu_rb_template, hfi1_mmu_mem_invalidate, 55*e236e2eaSBrendan Cunningham TP_PROTO(struct mmu_rb_node *node), 56*e236e2eaSBrendan Cunningham TP_ARGS(node)); 57*e236e2eaSBrendan Cunningham 58*e236e2eaSBrendan Cunningham DEFINE_EVENT(hfi1_mmu_rb_template, hfi1_mmu_rb_evict, 59*e236e2eaSBrendan Cunningham TP_PROTO(struct mmu_rb_node *node), 60*e236e2eaSBrendan Cunningham TP_ARGS(node)); 61*e236e2eaSBrendan Cunningham 62*e236e2eaSBrendan Cunningham DEFINE_EVENT(hfi1_mmu_rb_template, hfi1_mmu_release_node, 63*e236e2eaSBrendan Cunningham TP_PROTO(struct mmu_rb_node *node), 64*e236e2eaSBrendan Cunningham TP_ARGS(node)); 6534ab4de7SMichael J. Ruhl 6634ab4de7SMichael J. Ruhl #endif /* __HFI1_TRACE_RC_H */ 6734ab4de7SMichael J. Ruhl 6834ab4de7SMichael J. Ruhl #undef TRACE_INCLUDE_PATH 6934ab4de7SMichael J. Ruhl #undef TRACE_INCLUDE_FILE 7034ab4de7SMichael J. Ruhl #define TRACE_INCLUDE_PATH . 7134ab4de7SMichael J. Ruhl #define TRACE_INCLUDE_FILE trace_mmu 7234ab4de7SMichael J. Ruhl #include <trace/define_trace.h> 73