Commit 502adf57 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'perf-fixes-for-linus' of...

Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  watchdog: Don't throttle the watchdog
  tracing: Fix timer tracing
parents 3b6c5507 c6db67cd
...@@ -81,14 +81,16 @@ TRACE_EVENT(timer_expire_entry, ...@@ -81,14 +81,16 @@ TRACE_EVENT(timer_expire_entry,
TP_STRUCT__entry( TP_STRUCT__entry(
__field( void *, timer ) __field( void *, timer )
__field( unsigned long, now ) __field( unsigned long, now )
__field( void *, function)
), ),
TP_fast_assign( TP_fast_assign(
__entry->timer = timer; __entry->timer = timer;
__entry->now = jiffies; __entry->now = jiffies;
__entry->function = timer->function;
), ),
TP_printk("timer=%p now=%lu", __entry->timer, __entry->now) TP_printk("timer=%p function=%pf now=%lu", __entry->timer, __entry->function,__entry->now)
); );
/** /**
...@@ -200,14 +202,16 @@ TRACE_EVENT(hrtimer_expire_entry, ...@@ -200,14 +202,16 @@ TRACE_EVENT(hrtimer_expire_entry,
TP_STRUCT__entry( TP_STRUCT__entry(
__field( void *, hrtimer ) __field( void *, hrtimer )
__field( s64, now ) __field( s64, now )
__field( void *, function)
), ),
TP_fast_assign( TP_fast_assign(
__entry->hrtimer = hrtimer; __entry->hrtimer = hrtimer;
__entry->now = now->tv64; __entry->now = now->tv64;
__entry->function = hrtimer->function;
), ),
TP_printk("hrtimer=%p now=%llu", __entry->hrtimer, TP_printk("hrtimer=%p function=%pf now=%llu", __entry->hrtimer, __entry->function,
(unsigned long long)ktime_to_ns((ktime_t) { .tv64 = __entry->now })) (unsigned long long)ktime_to_ns((ktime_t) { .tv64 = __entry->now }))
); );
......
...@@ -206,6 +206,9 @@ void watchdog_overflow_callback(struct perf_event *event, int nmi, ...@@ -206,6 +206,9 @@ void watchdog_overflow_callback(struct perf_event *event, int nmi,
struct perf_sample_data *data, struct perf_sample_data *data,
struct pt_regs *regs) struct pt_regs *regs)
{ {
/* Ensure the watchdog never gets throttled */
event->hw.interrupts = 0;
if (__get_cpu_var(watchdog_nmi_touch) == true) { if (__get_cpu_var(watchdog_nmi_touch) == true) {
__get_cpu_var(watchdog_nmi_touch) = false; __get_cpu_var(watchdog_nmi_touch) = false;
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment