162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright(c) 2017 Intel Corporation. 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#if !defined(__HFI1_TRACE_MMU_H) || defined(TRACE_HEADER_MULTI_READ) 762306a36Sopenharmony_ci#define __HFI1_TRACE_MMU_H 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <linux/tracepoint.h> 1062306a36Sopenharmony_ci#include <linux/trace_seq.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#include "hfi.h" 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#undef TRACE_SYSTEM 1562306a36Sopenharmony_ci#define TRACE_SYSTEM hfi1_mmu 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciDECLARE_EVENT_CLASS(hfi1_mmu_rb_template, 1862306a36Sopenharmony_ci TP_PROTO(struct mmu_rb_node *node), 1962306a36Sopenharmony_ci TP_ARGS(node), 2062306a36Sopenharmony_ci TP_STRUCT__entry(__field(unsigned long, addr) 2162306a36Sopenharmony_ci __field(unsigned long, len) 2262306a36Sopenharmony_ci __field(unsigned int, refcount) 2362306a36Sopenharmony_ci ), 2462306a36Sopenharmony_ci TP_fast_assign(__entry->addr = node->addr; 2562306a36Sopenharmony_ci __entry->len = node->len; 2662306a36Sopenharmony_ci __entry->refcount = kref_read(&node->refcount); 2762306a36Sopenharmony_ci ), 2862306a36Sopenharmony_ci TP_printk("MMU node addr 0x%lx, len %lu, refcount %u", 2962306a36Sopenharmony_ci __entry->addr, 3062306a36Sopenharmony_ci __entry->len, 3162306a36Sopenharmony_ci __entry->refcount 3262306a36Sopenharmony_ci ) 3362306a36Sopenharmony_ci); 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciDEFINE_EVENT(hfi1_mmu_rb_template, hfi1_mmu_rb_insert, 3662306a36Sopenharmony_ci TP_PROTO(struct mmu_rb_node *node), 3762306a36Sopenharmony_ci TP_ARGS(node)); 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ciTRACE_EVENT(hfi1_mmu_rb_search, 4062306a36Sopenharmony_ci TP_PROTO(unsigned long addr, unsigned long len), 4162306a36Sopenharmony_ci TP_ARGS(addr, len), 4262306a36Sopenharmony_ci TP_STRUCT__entry(__field(unsigned long, addr) 4362306a36Sopenharmony_ci __field(unsigned long, len) 4462306a36Sopenharmony_ci ), 4562306a36Sopenharmony_ci TP_fast_assign(__entry->addr = addr; 4662306a36Sopenharmony_ci __entry->len = len; 4762306a36Sopenharmony_ci ), 4862306a36Sopenharmony_ci TP_printk("MMU node addr 0x%lx, len %lu", 4962306a36Sopenharmony_ci __entry->addr, 5062306a36Sopenharmony_ci __entry->len 5162306a36Sopenharmony_ci ) 5262306a36Sopenharmony_ci); 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ciDEFINE_EVENT(hfi1_mmu_rb_template, hfi1_mmu_mem_invalidate, 5562306a36Sopenharmony_ci TP_PROTO(struct mmu_rb_node *node), 5662306a36Sopenharmony_ci TP_ARGS(node)); 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ciDEFINE_EVENT(hfi1_mmu_rb_template, hfi1_mmu_rb_evict, 5962306a36Sopenharmony_ci TP_PROTO(struct mmu_rb_node *node), 6062306a36Sopenharmony_ci TP_ARGS(node)); 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ciDEFINE_EVENT(hfi1_mmu_rb_template, hfi1_mmu_release_node, 6362306a36Sopenharmony_ci TP_PROTO(struct mmu_rb_node *node), 6462306a36Sopenharmony_ci TP_ARGS(node)); 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci#endif /* __HFI1_TRACE_RC_H */ 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ci#undef TRACE_INCLUDE_PATH 6962306a36Sopenharmony_ci#undef TRACE_INCLUDE_FILE 7062306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH . 7162306a36Sopenharmony_ci#define TRACE_INCLUDE_FILE trace_mmu 7262306a36Sopenharmony_ci#include <trace/define_trace.h> 73