summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/trace/trace_irqsoff.c26
-rw-r--r--kernel/trace/trace_sched_wakeup.c13
2 files changed, 14 insertions, 25 deletions
diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c
index 7a4dc014b8ab..d0c1748b1e2c 100644
--- a/kernel/trace/trace_irqsoff.c
+++ b/kernel/trace/trace_irqsoff.c
@@ -165,18 +165,20 @@ check_critical_timing(struct trace_array *tr,
update_max_tr_single(tr, current, cpu);
- if (tracing_thresh) {
- printk(KERN_INFO "(%16s-%-5d|#%d):"
- " %lu us critical section violates %lu us threshold.\n",
- current->comm, current->pid,
- raw_smp_processor_id(),
- latency, nsecs_to_usecs(tracing_thresh));
- } else {
- printk(KERN_INFO "(%16s-%-5d|#%d):"
- " new %lu us maximum-latency critical section.\n",
- current->comm, current->pid,
- raw_smp_processor_id(),
- latency);
+ if (!runqueue_is_locked()) {
+ if (tracing_thresh) {
+ printk(KERN_INFO "(%16s-%-5d|#%d): %lu us critical"
+ " section violates %lu us threshold.\n",
+ current->comm, current->pid,
+ raw_smp_processor_id(),
+ latency, nsecs_to_usecs(tracing_thresh));
+ } else {
+ printk(KERN_INFO "(%16s-%-5d|#%d): new %lu us"
+ " maximum-latency critical section.\n",
+ current->comm, current->pid,
+ raw_smp_processor_id(),
+ latency);
+ }
}
max_sequence++;
diff --git a/kernel/trace/trace_sched_wakeup.c b/kernel/trace/trace_sched_wakeup.c
index 2a012423f9d0..5948011006bc 100644
--- a/kernel/trace/trace_sched_wakeup.c
+++ b/kernel/trace/trace_sched_wakeup.c
@@ -106,19 +106,6 @@ wakeup_sched_switch(struct task_struct *prev, struct task_struct *next)
update_max_tr(tr, wakeup_task, wakeup_cpu);
- if (tracing_thresh) {
- printk(KERN_INFO "(%16s-%-5d|#%d):"
- " %lu us wakeup latency violates %lu us threshold.\n",
- wakeup_task->comm, wakeup_task->pid,
- raw_smp_processor_id(),
- latency, nsecs_to_usecs(tracing_thresh));
- } else {
- printk(KERN_INFO "(%16s-%-5d|#%d):"
- " new %lu us maximum wakeup latency.\n",
- wakeup_task->comm, wakeup_task->pid,
- cpu, latency);
- }
-
out_unlock:
__wakeup_reset(tr);
spin_unlock_irqrestore(&wakeup_lock, flags);