diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/softirq.c | 1 | ||||
-rw-r--r-- | kernel/trace/trace.c | 20 | ||||
-rw-r--r-- | kernel/trace/trace_workqueue.c | 5 |
3 files changed, 13 insertions, 13 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c index 98dd68eea9e6..bbf6d6496f05 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c | |||
@@ -637,6 +637,7 @@ static int ksoftirqd(void * __bind_cpu) | |||
637 | preempt_enable_no_resched(); | 637 | preempt_enable_no_resched(); |
638 | cond_resched(); | 638 | cond_resched(); |
639 | preempt_disable(); | 639 | preempt_disable(); |
640 | rcu_qsctr_inc((long)__bind_cpu); | ||
640 | } | 641 | } |
641 | preempt_enable(); | 642 | preempt_enable(); |
642 | set_current_state(TASK_INTERRUPTIBLE); | 643 | set_current_state(TASK_INTERRUPTIBLE); |
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index cc94f8642485..e5b56199e5e0 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
@@ -1466,11 +1466,11 @@ print_trace_header(struct seq_file *m, struct trace_iterator *iter) | |||
1466 | total = entries + | 1466 | total = entries + |
1467 | ring_buffer_overruns(iter->tr->buffer); | 1467 | ring_buffer_overruns(iter->tr->buffer); |
1468 | 1468 | ||
1469 | seq_printf(m, "%s latency trace v1.1.5 on %s\n", | 1469 | seq_printf(m, "# %s latency trace v1.1.5 on %s\n", |
1470 | name, UTS_RELEASE); | 1470 | name, UTS_RELEASE); |
1471 | seq_puts(m, "-----------------------------------" | 1471 | seq_puts(m, "# -----------------------------------" |
1472 | "---------------------------------\n"); | 1472 | "---------------------------------\n"); |
1473 | seq_printf(m, " latency: %lu us, #%lu/%lu, CPU#%d |" | 1473 | seq_printf(m, "# latency: %lu us, #%lu/%lu, CPU#%d |" |
1474 | " (M:%s VP:%d, KP:%d, SP:%d HP:%d", | 1474 | " (M:%s VP:%d, KP:%d, SP:%d HP:%d", |
1475 | nsecs_to_usecs(data->saved_latency), | 1475 | nsecs_to_usecs(data->saved_latency), |
1476 | entries, | 1476 | entries, |
@@ -1492,24 +1492,24 @@ print_trace_header(struct seq_file *m, struct trace_iterator *iter) | |||
1492 | #else | 1492 | #else |
1493 | seq_puts(m, ")\n"); | 1493 | seq_puts(m, ")\n"); |
1494 | #endif | 1494 | #endif |
1495 | seq_puts(m, " -----------------\n"); | 1495 | seq_puts(m, "# -----------------\n"); |
1496 | seq_printf(m, " | task: %.16s-%d " | 1496 | seq_printf(m, "# | task: %.16s-%d " |
1497 | "(uid:%d nice:%ld policy:%ld rt_prio:%ld)\n", | 1497 | "(uid:%d nice:%ld policy:%ld rt_prio:%ld)\n", |
1498 | data->comm, data->pid, data->uid, data->nice, | 1498 | data->comm, data->pid, data->uid, data->nice, |
1499 | data->policy, data->rt_priority); | 1499 | data->policy, data->rt_priority); |
1500 | seq_puts(m, " -----------------\n"); | 1500 | seq_puts(m, "# -----------------\n"); |
1501 | 1501 | ||
1502 | if (data->critical_start) { | 1502 | if (data->critical_start) { |
1503 | seq_puts(m, " => started at: "); | 1503 | seq_puts(m, "# => started at: "); |
1504 | seq_print_ip_sym(&iter->seq, data->critical_start, sym_flags); | 1504 | seq_print_ip_sym(&iter->seq, data->critical_start, sym_flags); |
1505 | trace_print_seq(m, &iter->seq); | 1505 | trace_print_seq(m, &iter->seq); |
1506 | seq_puts(m, "\n => ended at: "); | 1506 | seq_puts(m, "\n# => ended at: "); |
1507 | seq_print_ip_sym(&iter->seq, data->critical_end, sym_flags); | 1507 | seq_print_ip_sym(&iter->seq, data->critical_end, sym_flags); |
1508 | trace_print_seq(m, &iter->seq); | 1508 | trace_print_seq(m, &iter->seq); |
1509 | seq_puts(m, "\n"); | 1509 | seq_puts(m, "#\n"); |
1510 | } | 1510 | } |
1511 | 1511 | ||
1512 | seq_puts(m, "\n"); | 1512 | seq_puts(m, "#\n"); |
1513 | } | 1513 | } |
1514 | 1514 | ||
1515 | static void test_cpu_buff_start(struct trace_iterator *iter) | 1515 | static void test_cpu_buff_start(struct trace_iterator *iter) |
diff --git a/kernel/trace/trace_workqueue.c b/kernel/trace/trace_workqueue.c index 4664990fe9c5..46c8dc896bd3 100644 --- a/kernel/trace/trace_workqueue.c +++ b/kernel/trace/trace_workqueue.c | |||
@@ -99,8 +99,6 @@ static void probe_workqueue_creation(struct task_struct *wq_thread, int cpu) | |||
99 | pr_warning("trace_workqueue: not enough memory\n"); | 99 | pr_warning("trace_workqueue: not enough memory\n"); |
100 | return; | 100 | return; |
101 | } | 101 | } |
102 | tracing_record_cmdline(wq_thread); | ||
103 | |||
104 | INIT_LIST_HEAD(&cws->list); | 102 | INIT_LIST_HEAD(&cws->list); |
105 | cws->cpu = cpu; | 103 | cws->cpu = cpu; |
106 | 104 | ||
@@ -195,11 +193,12 @@ static int workqueue_stat_show(struct seq_file *s, void *p) | |||
195 | struct cpu_workqueue_stats *cws = p; | 193 | struct cpu_workqueue_stats *cws = p; |
196 | unsigned long flags; | 194 | unsigned long flags; |
197 | int cpu = cws->cpu; | 195 | int cpu = cws->cpu; |
196 | struct task_struct *tsk = find_task_by_vpid(cws->pid); | ||
198 | 197 | ||
199 | seq_printf(s, "%3d %6d %6u %s\n", cws->cpu, | 198 | seq_printf(s, "%3d %6d %6u %s\n", cws->cpu, |
200 | atomic_read(&cws->inserted), | 199 | atomic_read(&cws->inserted), |
201 | cws->executed, | 200 | cws->executed, |
202 | trace_find_cmdline(cws->pid)); | 201 | tsk ? tsk->comm : "<...>"); |
203 | 202 | ||
204 | spin_lock_irqsave(&workqueue_cpu_stat(cpu)->lock, flags); | 203 | spin_lock_irqsave(&workqueue_cpu_stat(cpu)->lock, flags); |
205 | if (&cws->list == workqueue_cpu_stat(cpu)->list.next) | 204 | if (&cws->list == workqueue_cpu_stat(cpu)->list.next) |