kvm.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #if !defined(_TRACE_KVM_MAIN_H) || defined(TRACE_HEADER_MULTI_READ)
  2. #define _TRACE_KVM_MAIN_H
  3. #include <linux/tracepoint.h>
  4. #undef TRACE_SYSTEM
  5. #define TRACE_SYSTEM kvm
  6. #define TRACE_INCLUDE_FILE kvm
  7. #if defined(__KVM_HAVE_IOAPIC)
  8. TRACE_EVENT(kvm_set_irq,
  9. TP_PROTO(unsigned int gsi, int level, int irq_source_id),
  10. TP_ARGS(gsi, level, irq_source_id),
  11. TP_STRUCT__entry(
  12. __field( unsigned int, gsi )
  13. __field( int, level )
  14. __field( int, irq_source_id )
  15. ),
  16. TP_fast_assign(
  17. __entry->gsi = gsi;
  18. __entry->level = level;
  19. __entry->irq_source_id = irq_source_id;
  20. ),
  21. TP_printk("gsi %u level %d source %d",
  22. __entry->gsi, __entry->level, __entry->irq_source_id)
  23. );
  24. #define kvm_irqchips \
  25. {KVM_IRQCHIP_PIC_MASTER, "PIC master"}, \
  26. {KVM_IRQCHIP_PIC_SLAVE, "PIC slave"}, \
  27. {KVM_IRQCHIP_IOAPIC, "IOAPIC"}
  28. TRACE_EVENT(kvm_ack_irq,
  29. TP_PROTO(unsigned int irqchip, unsigned int pin),
  30. TP_ARGS(irqchip, pin),
  31. TP_STRUCT__entry(
  32. __field( unsigned int, irqchip )
  33. __field( unsigned int, pin )
  34. ),
  35. TP_fast_assign(
  36. __entry->irqchip = irqchip;
  37. __entry->pin = pin;
  38. ),
  39. TP_printk("irqchip %s pin %u",
  40. __print_symbolic(__entry->irqchip, kvm_irqchips),
  41. __entry->pin)
  42. );
  43. #endif /* defined(__KVM_HAVE_IOAPIC) */
  44. #define KVM_TRACE_MMIO_READ_UNSATISFIED 0
  45. #define KVM_TRACE_MMIO_READ 1
  46. #define KVM_TRACE_MMIO_WRITE 2
  47. #define kvm_trace_symbol_mmio \
  48. { KVM_TRACE_MMIO_READ_UNSATISFIED, "unsatisfied-read" }, \
  49. { KVM_TRACE_MMIO_READ, "read" }, \
  50. { KVM_TRACE_MMIO_WRITE, "write" }
  51. TRACE_EVENT(kvm_mmio,
  52. TP_PROTO(int type, int len, u64 gpa, u64 val),
  53. TP_ARGS(type, len, gpa, val),
  54. TP_STRUCT__entry(
  55. __field( u32, type )
  56. __field( u32, len )
  57. __field( u64, gpa )
  58. __field( u64, val )
  59. ),
  60. TP_fast_assign(
  61. __entry->type = type;
  62. __entry->len = len;
  63. __entry->gpa = gpa;
  64. __entry->val = val;
  65. ),
  66. TP_printk("mmio %s len %u gpa 0x%llx val 0x%llx",
  67. __print_symbolic(__entry->type, kvm_trace_symbol_mmio),
  68. __entry->len, __entry->gpa, __entry->val)
  69. );
  70. #endif /* _TRACE_KVM_MAIN_H */
  71. /* This part must be outside protection */
  72. #include <trace/define_trace.h>