diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/trace/trace.c | 2 | ||||
| -rw-r--r-- | kernel/trace/trace.h | 1 | ||||
| -rw-r--r-- | kernel/trace/trace_events.c | 5 | ||||
| -rw-r--r-- | kernel/trace/trace_output.c | 2 |
4 files changed, 4 insertions, 6 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 5c75deeefe30..1a37da2e8534 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
| @@ -886,7 +886,6 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags, | |||
| 886 | 886 | ||
| 887 | entry->preempt_count = pc & 0xff; | 887 | entry->preempt_count = pc & 0xff; |
| 888 | entry->pid = (tsk) ? tsk->pid : 0; | 888 | entry->pid = (tsk) ? tsk->pid : 0; |
| 889 | entry->tgid = (tsk) ? tsk->tgid : 0; | ||
| 890 | entry->flags = | 889 | entry->flags = |
| 891 | #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT | 890 | #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT |
| 892 | (irqs_disabled_flags(flags) ? TRACE_FLAG_IRQS_OFF : 0) | | 891 | (irqs_disabled_flags(flags) ? TRACE_FLAG_IRQS_OFF : 0) | |
| @@ -1068,6 +1067,7 @@ ftrace_trace_userstack(struct ring_buffer *buffer, unsigned long flags, int pc) | |||
| 1068 | return; | 1067 | return; |
| 1069 | entry = ring_buffer_event_data(event); | 1068 | entry = ring_buffer_event_data(event); |
| 1070 | 1069 | ||
| 1070 | entry->tgid = current->tgid; | ||
| 1071 | memset(&entry->caller, 0, sizeof(entry->caller)); | 1071 | memset(&entry->caller, 0, sizeof(entry->caller)); |
| 1072 | 1072 | ||
| 1073 | trace.nr_entries = 0; | 1073 | trace.nr_entries = 0; |
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index acaa68060ebc..b69697b4b846 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h | |||
| @@ -101,6 +101,7 @@ struct stack_entry { | |||
| 101 | 101 | ||
| 102 | struct userstack_entry { | 102 | struct userstack_entry { |
| 103 | struct trace_entry ent; | 103 | struct trace_entry ent; |
| 104 | unsigned int tgid; | ||
| 104 | unsigned long caller[FTRACE_STACK_ENTRIES]; | 105 | unsigned long caller[FTRACE_STACK_ENTRIES]; |
| 105 | }; | 106 | }; |
| 106 | 107 | ||
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c index 78b1ed230177..28d92027a93c 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c | |||
| @@ -86,7 +86,6 @@ int trace_define_common_fields(struct ftrace_event_call *call) | |||
| 86 | __common_field(unsigned char, flags); | 86 | __common_field(unsigned char, flags); |
| 87 | __common_field(unsigned char, preempt_count); | 87 | __common_field(unsigned char, preempt_count); |
| 88 | __common_field(int, pid); | 88 | __common_field(int, pid); |
| 89 | __common_field(int, tgid); | ||
| 90 | 89 | ||
| 91 | return ret; | 90 | return ret; |
| 92 | } | 91 | } |
| @@ -572,13 +571,11 @@ static int trace_write_header(struct trace_seq *s) | |||
| 572 | "\tfield:%s %s;\toffset:%zu;\tsize:%zu;\n" | 571 | "\tfield:%s %s;\toffset:%zu;\tsize:%zu;\n" |
| 573 | "\tfield:%s %s;\toffset:%zu;\tsize:%zu;\n" | 572 | "\tfield:%s %s;\toffset:%zu;\tsize:%zu;\n" |
| 574 | "\tfield:%s %s;\toffset:%zu;\tsize:%zu;\n" | 573 | "\tfield:%s %s;\toffset:%zu;\tsize:%zu;\n" |
| 575 | "\tfield:%s %s;\toffset:%zu;\tsize:%zu;\n" | ||
| 576 | "\n", | 574 | "\n", |
| 577 | FIELD(unsigned short, type), | 575 | FIELD(unsigned short, type), |
| 578 | FIELD(unsigned char, flags), | 576 | FIELD(unsigned char, flags), |
| 579 | FIELD(unsigned char, preempt_count), | 577 | FIELD(unsigned char, preempt_count), |
| 580 | FIELD(int, pid), | 578 | FIELD(int, pid)); |
| 581 | FIELD(int, tgid)); | ||
| 582 | } | 579 | } |
| 583 | 580 | ||
| 584 | static ssize_t | 581 | static ssize_t |
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index e0c2545622e8..be34a6aa7e4d 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c | |||
| @@ -407,7 +407,7 @@ seq_print_userip_objs(const struct userstack_entry *entry, struct trace_seq *s, | |||
| 407 | * since individual threads might have already quit! | 407 | * since individual threads might have already quit! |
| 408 | */ | 408 | */ |
| 409 | rcu_read_lock(); | 409 | rcu_read_lock(); |
| 410 | task = find_task_by_vpid(entry->ent.tgid); | 410 | task = find_task_by_vpid(entry->tgid); |
| 411 | if (task) | 411 | if (task) |
| 412 | mm = get_task_mm(task); | 412 | mm = get_task_mm(task); |
| 413 | rcu_read_unlock(); | 413 | rcu_read_unlock(); |
