18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * VFIO PCI mmap/mmap_fault tracepoints 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2018 IBM Corp. All rights reserved. 68c2ecf20Sopenharmony_ci * Author: Alexey Kardashevskiy <aik@ozlabs.ru> 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#undef TRACE_SYSTEM 108c2ecf20Sopenharmony_ci#define TRACE_SYSTEM vfio_pci 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#if !defined(_TRACE_VFIO_PCI_H) || defined(TRACE_HEADER_MULTI_READ) 138c2ecf20Sopenharmony_ci#define _TRACE_VFIO_PCI_H 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci#include <linux/tracepoint.h> 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciTRACE_EVENT(vfio_pci_nvgpu_mmap_fault, 188c2ecf20Sopenharmony_ci TP_PROTO(struct pci_dev *pdev, unsigned long hpa, unsigned long ua, 198c2ecf20Sopenharmony_ci vm_fault_t ret), 208c2ecf20Sopenharmony_ci TP_ARGS(pdev, hpa, ua, ret), 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci TP_STRUCT__entry( 238c2ecf20Sopenharmony_ci __field(const char *, name) 248c2ecf20Sopenharmony_ci __field(unsigned long, hpa) 258c2ecf20Sopenharmony_ci __field(unsigned long, ua) 268c2ecf20Sopenharmony_ci __field(int, ret) 278c2ecf20Sopenharmony_ci ), 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci TP_fast_assign( 308c2ecf20Sopenharmony_ci __entry->name = dev_name(&pdev->dev), 318c2ecf20Sopenharmony_ci __entry->hpa = hpa; 328c2ecf20Sopenharmony_ci __entry->ua = ua; 338c2ecf20Sopenharmony_ci __entry->ret = ret; 348c2ecf20Sopenharmony_ci ), 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci TP_printk("%s: %lx -> %lx ret=%d", __entry->name, __entry->hpa, 378c2ecf20Sopenharmony_ci __entry->ua, __entry->ret) 388c2ecf20Sopenharmony_ci); 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ciTRACE_EVENT(vfio_pci_nvgpu_mmap, 418c2ecf20Sopenharmony_ci TP_PROTO(struct pci_dev *pdev, unsigned long hpa, unsigned long ua, 428c2ecf20Sopenharmony_ci unsigned long size, int ret), 438c2ecf20Sopenharmony_ci TP_ARGS(pdev, hpa, ua, size, ret), 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci TP_STRUCT__entry( 468c2ecf20Sopenharmony_ci __field(const char *, name) 478c2ecf20Sopenharmony_ci __field(unsigned long, hpa) 488c2ecf20Sopenharmony_ci __field(unsigned long, ua) 498c2ecf20Sopenharmony_ci __field(unsigned long, size) 508c2ecf20Sopenharmony_ci __field(int, ret) 518c2ecf20Sopenharmony_ci ), 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci TP_fast_assign( 548c2ecf20Sopenharmony_ci __entry->name = dev_name(&pdev->dev), 558c2ecf20Sopenharmony_ci __entry->hpa = hpa; 568c2ecf20Sopenharmony_ci __entry->ua = ua; 578c2ecf20Sopenharmony_ci __entry->size = size; 588c2ecf20Sopenharmony_ci __entry->ret = ret; 598c2ecf20Sopenharmony_ci ), 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ci TP_printk("%s: %lx -> %lx size=%lx ret=%d", __entry->name, __entry->hpa, 628c2ecf20Sopenharmony_ci __entry->ua, __entry->size, __entry->ret) 638c2ecf20Sopenharmony_ci); 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ciTRACE_EVENT(vfio_pci_npu2_mmap, 668c2ecf20Sopenharmony_ci TP_PROTO(struct pci_dev *pdev, unsigned long hpa, unsigned long ua, 678c2ecf20Sopenharmony_ci unsigned long size, int ret), 688c2ecf20Sopenharmony_ci TP_ARGS(pdev, hpa, ua, size, ret), 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci TP_STRUCT__entry( 718c2ecf20Sopenharmony_ci __field(const char *, name) 728c2ecf20Sopenharmony_ci __field(unsigned long, hpa) 738c2ecf20Sopenharmony_ci __field(unsigned long, ua) 748c2ecf20Sopenharmony_ci __field(unsigned long, size) 758c2ecf20Sopenharmony_ci __field(int, ret) 768c2ecf20Sopenharmony_ci ), 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci TP_fast_assign( 798c2ecf20Sopenharmony_ci __entry->name = dev_name(&pdev->dev), 808c2ecf20Sopenharmony_ci __entry->hpa = hpa; 818c2ecf20Sopenharmony_ci __entry->ua = ua; 828c2ecf20Sopenharmony_ci __entry->size = size; 838c2ecf20Sopenharmony_ci __entry->ret = ret; 848c2ecf20Sopenharmony_ci ), 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ci TP_printk("%s: %lx -> %lx size=%lx ret=%d", __entry->name, __entry->hpa, 878c2ecf20Sopenharmony_ci __entry->ua, __entry->size, __entry->ret) 888c2ecf20Sopenharmony_ci); 898c2ecf20Sopenharmony_ci 908c2ecf20Sopenharmony_ci#endif /* _TRACE_VFIO_PCI_H */ 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_PATH 938c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_PATH ../../drivers/vfio/pci 948c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_FILE 958c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_FILE trace 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ci/* This part must be outside protection */ 988c2ecf20Sopenharmony_ci#include <trace/define_trace.h> 99