With the recent feature added to enable perf events to use pseudo NMIs as interrupts on platforms which support GICv3 or later, its now been possible to enable hard lockup detector (or NMI watchdog) on arm64 platforms. So enable corresponding support. One thing to note here is that normally lockup detector is initialized just after the early initcalls but PMU on arm64 comes up much later as device_initcall(). So we need to re-initialize lockup detection once PMU has been initialized.
Showing the changes to include/linux/perf (1 of 4 files). Show all
Unified · Split
| @@ -163,6 +163,8 @@ int arm_pmu_acpi_probe(armpmu_init_fn init_fn); · 162 unmodified lines | |||
| 163 | static inline int arm_pmu_acpi_probe(armpmu_init_fn init_fn) { return 0; } | 163 | static inline int arm_pmu_acpi_probe(armpmu_init_fn init_fn) { return 0; } |
| 164 | #endif | 164 | #endif |
| 165 | 165 | ||
| 166 | bool arm_pmu_irq_is_nmi(void); | ||
| 167 | |||
| 166 | /* Internal functions only for core arm_pmu code */ | 168 | /* Internal functions only for core arm_pmu code */ |
| 167 | struct arm_pmu *armpmu_alloc(void); | 169 | struct arm_pmu *armpmu_alloc(void); |
| 168 | struct arm_pmu *armpmu_alloc_atomic(void); | 170 | struct arm_pmu *armpmu_alloc_atomic(void); |