diff options
Diffstat (limited to 'kernel/watchdog_perf.c')
| -rw-r--r-- | kernel/watchdog_perf.c | 22 | 
1 files changed, 22 insertions, 0 deletions
diff --git a/kernel/watchdog_perf.c b/kernel/watchdog_perf.c index 75af12ff774e..9c58f5b4381d 100644 --- a/kernel/watchdog_perf.c +++ b/kernel/watchdog_perf.c @@ -187,6 +187,28 @@ void watchdog_hardlockup_disable(unsigned int cpu)  }  /** + * hardlockup_detector_perf_adjust_period - Adjust the event period due + *                                          to current cpu frequency change + * @period: The target period to be set + */ +void hardlockup_detector_perf_adjust_period(u64 period) +{ +	struct perf_event *event = this_cpu_read(watchdog_ev); + +	if (!(watchdog_enabled & WATCHDOG_HARDLOCKUP_ENABLED)) +		return; + +	if (!event) +		return; + +	if (event->attr.sample_period == period) +		return; + +	if (perf_event_period(event, period)) +		pr_err("failed to change period to %llu\n", period); +} + +/**   * hardlockup_detector_perf_stop - Globally stop watchdog events   *   * Special interface for x86 to handle the perf HT bug.  | 
