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) |
