[PATCH v2 1/2] watchdog: move arm64 watchdog_hld into common code

Doug Anderson dianders at chromium.org
Thu Sep 25 12:59:28 PDT 2025


Hi,

On Thu, Sep 25, 2025 at 1:48 AM Yunhui Cui <cuiyunhui at bytedance.com> wrote:
>
> @@ -17,6 +17,7 @@
>  #include <linux/cpu_pm.h>
>  #include <linux/export.h>
>  #include <linux/kernel.h>
> +#include <linux/nmi.h>
>  #include <linux/perf/arm_pmu.h>
>  #include <linux/slab.h>
>  #include <linux/sched/clock.h>
> @@ -696,10 +697,12 @@ static int armpmu_get_cpu_irq(struct arm_pmu *pmu, int cpu)
>         return per_cpu(hw_events->irq, cpu);
>  }
>
> -bool arm_pmu_irq_is_nmi(void)
> +#ifdef CONFIG_HARDLOCKUP_DETECTOR_PERF
> +bool arch_perf_nmi_is_available(void)
>  {
>         return has_nmi;
>  }
> +#endif

Should the previous comment move here, AKA:

/*
 * hardlockup_detector_perf_init() will success even if Pseudo-NMI turns off,
 * however, the pmu interrupts will act like a normal interrupt instead of
 * NMI and the hardlockup detector would be broken.
*/


> +static int __init init_watchdog_freq_notifier(void)
> +{
> +       return cpufreq_register_notifier(&watchdog_freq_notifier,
> +                                        CPUFREQ_POLICY_NOTIFIER);

I think you need to do something to prevent this from happening on any
platforms that override hw_nmi_get_sample_period(), right? These
cpufreq notifiers will be useless in that case...


-Doug



More information about the linux-riscv mailing list