Merge tag 'riscv-for-linus-6.6-mw1' of git://git.kernel.org/pub/scm/linux/kernel...
[sfrench/cifs-2.6.git] / include / linux / perf_event.h
index 1269c96bc3b6fb1a2d7ebdb29aa853c98c67fdb4..e85cd1c0eaf355ebb85c0b7c48b803283d91544e 100644 (file)
@@ -288,10 +288,9 @@ struct perf_event_pmu_context;
 #define PERF_PMU_CAP_EXTENDED_REGS             0x0008
 #define PERF_PMU_CAP_EXCLUSIVE                 0x0010
 #define PERF_PMU_CAP_ITRACE                    0x0020
-#define PERF_PMU_CAP_HETEROGENEOUS_CPUS                0x0040
-#define PERF_PMU_CAP_NO_EXCLUDE                        0x0080
-#define PERF_PMU_CAP_AUX_OUTPUT                        0x0100
-#define PERF_PMU_CAP_EXTENDED_HW_TYPE          0x0200
+#define PERF_PMU_CAP_NO_EXCLUDE                        0x0040
+#define PERF_PMU_CAP_AUX_OUTPUT                        0x0080
+#define PERF_PMU_CAP_EXTENDED_HW_TYPE          0x0100
 
 struct perf_output_handle;
 
@@ -1195,7 +1194,8 @@ struct perf_sample_data {
                    PERF_MEM_S(LVL, NA)   |\
                    PERF_MEM_S(SNOOP, NA) |\
                    PERF_MEM_S(LOCK, NA)  |\
-                   PERF_MEM_S(TLB, NA))
+                   PERF_MEM_S(TLB, NA)   |\
+                   PERF_MEM_S(LVLNUM, NA))
 
 static inline void perf_sample_data_init(struct perf_sample_data *data,
                                         u64 addr, u64 period)
@@ -1317,15 +1317,31 @@ extern int perf_event_output(struct perf_event *event,
                             struct pt_regs *regs);
 
 static inline bool
-is_default_overflow_handler(struct perf_event *event)
+__is_default_overflow_handler(perf_overflow_handler_t overflow_handler)
 {
-       if (likely(event->overflow_handler == perf_event_output_forward))
+       if (likely(overflow_handler == perf_event_output_forward))
                return true;
-       if (unlikely(event->overflow_handler == perf_event_output_backward))
+       if (unlikely(overflow_handler == perf_event_output_backward))
                return true;
        return false;
 }
 
+#define is_default_overflow_handler(event) \
+       __is_default_overflow_handler((event)->overflow_handler)
+
+#ifdef CONFIG_BPF_SYSCALL
+static inline bool uses_default_overflow_handler(struct perf_event *event)
+{
+       if (likely(is_default_overflow_handler(event)))
+               return true;
+
+       return __is_default_overflow_handler(event->orig_overflow_handler);
+}
+#else
+#define uses_default_overflow_handler(event) \
+       is_default_overflow_handler(event)
+#endif
+
 extern void
 perf_event_header__init_id(struct perf_event_header *header,
                           struct perf_sample_data *data,
@@ -1861,10 +1877,6 @@ extern void arch_perf_update_userpage(struct perf_event *event,
                                      struct perf_event_mmap_page *userpg,
                                      u64 now);
 
-#ifdef CONFIG_MMU
-extern __weak u64 arch_perf_get_page_size(struct mm_struct *mm, unsigned long addr);
-#endif
-
 /*
  * Snapshot branch stack on software events.
  *