hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/include/linux/perf_event.h
....@@ -1078,15 +1078,31 @@
10781078 struct pt_regs *regs);
10791079
10801080 static inline bool
1081
-is_default_overflow_handler(struct perf_event *event)
1081
+__is_default_overflow_handler(perf_overflow_handler_t overflow_handler)
10821082 {
1083
- if (likely(event->overflow_handler == perf_event_output_forward))
1083
+ if (likely(overflow_handler == perf_event_output_forward))
10841084 return true;
1085
- if (unlikely(event->overflow_handler == perf_event_output_backward))
1085
+ if (unlikely(overflow_handler == perf_event_output_backward))
10861086 return true;
10871087 return false;
10881088 }
10891089
1090
+#define is_default_overflow_handler(event) \
1091
+ __is_default_overflow_handler((event)->overflow_handler)
1092
+
1093
+#ifdef CONFIG_BPF_SYSCALL
1094
+static inline bool uses_default_overflow_handler(struct perf_event *event)
1095
+{
1096
+ if (likely(is_default_overflow_handler(event)))
1097
+ return true;
1098
+
1099
+ return __is_default_overflow_handler(event->orig_overflow_handler);
1100
+}
1101
+#else
1102
+#define uses_default_overflow_handler(event) \
1103
+ is_default_overflow_handler(event)
1104
+#endif
1105
+
10901106 extern void
10911107 perf_event_header__init_id(struct perf_event_header *header,
10921108 struct perf_sample_data *data,