trace.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * VFIO PCI mmap/mmap_fault tracepoints
  4. *
  5. * Copyright (C) 2018 IBM Corp. All rights reserved.
  6. * Author: Alexey Kardashevskiy <[email protected]>
  7. */
  8. #undef TRACE_SYSTEM
  9. #define TRACE_SYSTEM vfio_pci
  10. #if !defined(_TRACE_VFIO_PCI_H) || defined(TRACE_HEADER_MULTI_READ)
  11. #define _TRACE_VFIO_PCI_H
  12. #include <linux/tracepoint.h>
  13. TRACE_EVENT(vfio_pci_nvgpu_mmap_fault,
  14. TP_PROTO(struct pci_dev *pdev, unsigned long hpa, unsigned long ua,
  15. vm_fault_t ret),
  16. TP_ARGS(pdev, hpa, ua, ret),
  17. TP_STRUCT__entry(
  18. __field(const char *, name)
  19. __field(unsigned long, hpa)
  20. __field(unsigned long, ua)
  21. __field(int, ret)
  22. ),
  23. TP_fast_assign(
  24. __entry->name = dev_name(&pdev->dev),
  25. __entry->hpa = hpa;
  26. __entry->ua = ua;
  27. __entry->ret = ret;
  28. ),
  29. TP_printk("%s: %lx -> %lx ret=%d", __entry->name, __entry->hpa,
  30. __entry->ua, __entry->ret)
  31. );
  32. TRACE_EVENT(vfio_pci_nvgpu_mmap,
  33. TP_PROTO(struct pci_dev *pdev, unsigned long hpa, unsigned long ua,
  34. unsigned long size, int ret),
  35. TP_ARGS(pdev, hpa, ua, size, ret),
  36. TP_STRUCT__entry(
  37. __field(const char *, name)
  38. __field(unsigned long, hpa)
  39. __field(unsigned long, ua)
  40. __field(unsigned long, size)
  41. __field(int, ret)
  42. ),
  43. TP_fast_assign(
  44. __entry->name = dev_name(&pdev->dev),
  45. __entry->hpa = hpa;
  46. __entry->ua = ua;
  47. __entry->size = size;
  48. __entry->ret = ret;
  49. ),
  50. TP_printk("%s: %lx -> %lx size=%lx ret=%d", __entry->name, __entry->hpa,
  51. __entry->ua, __entry->size, __entry->ret)
  52. );
  53. TRACE_EVENT(vfio_pci_npu2_mmap,
  54. TP_PROTO(struct pci_dev *pdev, unsigned long hpa, unsigned long ua,
  55. unsigned long size, int ret),
  56. TP_ARGS(pdev, hpa, ua, size, ret),
  57. TP_STRUCT__entry(
  58. __field(const char *, name)
  59. __field(unsigned long, hpa)
  60. __field(unsigned long, ua)
  61. __field(unsigned long, size)
  62. __field(int, ret)
  63. ),
  64. TP_fast_assign(
  65. __entry->name = dev_name(&pdev->dev),
  66. __entry->hpa = hpa;
  67. __entry->ua = ua;
  68. __entry->size = size;
  69. __entry->ret = ret;
  70. ),
  71. TP_printk("%s: %lx -> %lx size=%lx ret=%d", __entry->name, __entry->hpa,
  72. __entry->ua, __entry->size, __entry->ret)
  73. );
  74. #endif /* _TRACE_VFIO_PCI_H */
  75. #undef TRACE_INCLUDE_PATH
  76. #define TRACE_INCLUDE_PATH ../../drivers/vfio/pci
  77. #undef TRACE_INCLUDE_FILE
  78. #define TRACE_INCLUDE_FILE trace
  79. /* This part must be outside protection */
  80. #include <trace/define_trace.h>