diff options
-rw-r--r-- | kernel/trace/trace.c | 61 | ||||
-rw-r--r-- | kernel/trace/trace.h | 7 | ||||
-rw-r--r-- | kernel/trace/trace_functions_graph.c | 3 | ||||
-rw-r--r-- | kernel/trace/trace_mmiotrace.c | 3 |
4 files changed, 0 insertions, 74 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index f4bb3800318b..fca0233f1d73 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
@@ -1765,43 +1765,6 @@ static int task_state_char(unsigned long state) | |||
1765 | return bit < sizeof(state_to_char) - 1 ? state_to_char[bit] : '?'; | 1765 | return bit < sizeof(state_to_char) - 1 ? state_to_char[bit] : '?'; |
1766 | } | 1766 | } |
1767 | 1767 | ||
1768 | /* | ||
1769 | * The message is supposed to contain an ending newline. | ||
1770 | * If the printing stops prematurely, try to add a newline of our own. | ||
1771 | */ | ||
1772 | void trace_seq_print_cont(struct trace_seq *s, struct trace_iterator *iter) | ||
1773 | { | ||
1774 | struct trace_entry *ent; | ||
1775 | struct trace_field_cont *cont; | ||
1776 | bool ok = true; | ||
1777 | |||
1778 | ent = peek_next_entry(iter, iter->cpu, NULL); | ||
1779 | if (!ent || ent->type != TRACE_CONT) { | ||
1780 | trace_seq_putc(s, '\n'); | ||
1781 | return; | ||
1782 | } | ||
1783 | |||
1784 | do { | ||
1785 | cont = (struct trace_field_cont *)ent; | ||
1786 | if (ok) | ||
1787 | ok = (trace_seq_printf(s, "%s", cont->buf) > 0); | ||
1788 | |||
1789 | ftrace_disable_cpu(); | ||
1790 | |||
1791 | if (iter->buffer_iter[iter->cpu]) | ||
1792 | ring_buffer_read(iter->buffer_iter[iter->cpu], NULL); | ||
1793 | else | ||
1794 | ring_buffer_consume(iter->tr->buffer, iter->cpu, NULL); | ||
1795 | |||
1796 | ftrace_enable_cpu(); | ||
1797 | |||
1798 | ent = peek_next_entry(iter, iter->cpu, NULL); | ||
1799 | } while (ent && ent->type == TRACE_CONT); | ||
1800 | |||
1801 | if (!ok) | ||
1802 | trace_seq_putc(s, '\n'); | ||
1803 | } | ||
1804 | |||
1805 | static void test_cpu_buff_start(struct trace_iterator *iter) | 1768 | static void test_cpu_buff_start(struct trace_iterator *iter) |
1806 | { | 1769 | { |
1807 | struct trace_seq *s = &iter->seq; | 1770 | struct trace_seq *s = &iter->seq; |
@@ -1834,9 +1797,6 @@ print_lat_fmt(struct trace_iterator *iter, unsigned int trace_idx, int cpu) | |||
1834 | int S, T; | 1797 | int S, T; |
1835 | int i; | 1798 | int i; |
1836 | 1799 | ||
1837 | if (entry->type == TRACE_CONT) | ||
1838 | return TRACE_TYPE_HANDLED; | ||
1839 | |||
1840 | test_cpu_buff_start(iter); | 1800 | test_cpu_buff_start(iter); |
1841 | 1801 | ||
1842 | next_entry = find_next_entry(iter, NULL, &next_ts); | 1802 | next_entry = find_next_entry(iter, NULL, &next_ts); |
@@ -1922,8 +1882,6 @@ print_lat_fmt(struct trace_iterator *iter, unsigned int trace_idx, int cpu) | |||
1922 | 1882 | ||
1923 | seq_print_ip_sym(s, field->ip, sym_flags); | 1883 | seq_print_ip_sym(s, field->ip, sym_flags); |
1924 | trace_seq_printf(s, ": %s", field->buf); | 1884 | trace_seq_printf(s, ": %s", field->buf); |
1925 | if (entry->flags & TRACE_FLAG_CONT) | ||
1926 | trace_seq_print_cont(s, iter); | ||
1927 | break; | 1885 | break; |
1928 | } | 1886 | } |
1929 | case TRACE_BRANCH: { | 1887 | case TRACE_BRANCH: { |
@@ -1968,9 +1926,6 @@ static enum print_line_t print_trace_fmt(struct trace_iterator *iter) | |||
1968 | 1926 | ||
1969 | entry = iter->ent; | 1927 | entry = iter->ent; |
1970 | 1928 | ||
1971 | if (entry->type == TRACE_CONT) | ||
1972 | return TRACE_TYPE_HANDLED; | ||
1973 | |||
1974 | test_cpu_buff_start(iter); | 1929 | test_cpu_buff_start(iter); |
1975 | 1930 | ||
1976 | comm = trace_find_cmdline(iter->ent->pid); | 1931 | comm = trace_find_cmdline(iter->ent->pid); |
@@ -2076,8 +2031,6 @@ static enum print_line_t print_trace_fmt(struct trace_iterator *iter) | |||
2076 | 2031 | ||
2077 | seq_print_ip_sym(s, field->ip, sym_flags); | 2032 | seq_print_ip_sym(s, field->ip, sym_flags); |
2078 | trace_seq_printf(s, ": %s", field->buf); | 2033 | trace_seq_printf(s, ": %s", field->buf); |
2079 | if (entry->flags & TRACE_FLAG_CONT) | ||
2080 | trace_seq_print_cont(s, iter); | ||
2081 | break; | 2034 | break; |
2082 | } | 2035 | } |
2083 | case TRACE_GRAPH_RET: { | 2036 | case TRACE_GRAPH_RET: { |
@@ -2124,9 +2077,6 @@ static enum print_line_t print_raw_fmt(struct trace_iterator *iter) | |||
2124 | 2077 | ||
2125 | entry = iter->ent; | 2078 | entry = iter->ent; |
2126 | 2079 | ||
2127 | if (entry->type == TRACE_CONT) | ||
2128 | return TRACE_TYPE_HANDLED; | ||
2129 | |||
2130 | ret = trace_seq_printf(s, "%d %d %llu ", | 2080 | ret = trace_seq_printf(s, "%d %d %llu ", |
2131 | entry->pid, iter->cpu, iter->ts); | 2081 | entry->pid, iter->cpu, iter->ts); |
2132 | if (!ret) | 2082 | if (!ret) |
@@ -2187,8 +2137,6 @@ static enum print_line_t print_raw_fmt(struct trace_iterator *iter) | |||
2187 | trace_assign_type(field, entry); | 2137 | trace_assign_type(field, entry); |
2188 | 2138 | ||
2189 | trace_seq_printf(s, "# %lx %s", field->ip, field->buf); | 2139 | trace_seq_printf(s, "# %lx %s", field->ip, field->buf); |
2190 | if (entry->flags & TRACE_FLAG_CONT) | ||
2191 | trace_seq_print_cont(s, iter); | ||
2192 | break; | 2140 | break; |
2193 | } | 2141 | } |
2194 | } | 2142 | } |
@@ -2217,9 +2165,6 @@ static enum print_line_t print_hex_fmt(struct trace_iterator *iter) | |||
2217 | 2165 | ||
2218 | entry = iter->ent; | 2166 | entry = iter->ent; |
2219 | 2167 | ||
2220 | if (entry->type == TRACE_CONT) | ||
2221 | return TRACE_TYPE_HANDLED; | ||
2222 | |||
2223 | SEQ_PUT_HEX_FIELD_RET(s, entry->pid); | 2168 | SEQ_PUT_HEX_FIELD_RET(s, entry->pid); |
2224 | SEQ_PUT_HEX_FIELD_RET(s, iter->cpu); | 2169 | SEQ_PUT_HEX_FIELD_RET(s, iter->cpu); |
2225 | SEQ_PUT_HEX_FIELD_RET(s, iter->ts); | 2170 | SEQ_PUT_HEX_FIELD_RET(s, iter->ts); |
@@ -2283,9 +2228,6 @@ static enum print_line_t print_printk_msg_only(struct trace_iterator *iter) | |||
2283 | if (!ret) | 2228 | if (!ret) |
2284 | return TRACE_TYPE_PARTIAL_LINE; | 2229 | return TRACE_TYPE_PARTIAL_LINE; |
2285 | 2230 | ||
2286 | if (entry->flags & TRACE_FLAG_CONT) | ||
2287 | trace_seq_print_cont(s, iter); | ||
2288 | |||
2289 | return TRACE_TYPE_HANDLED; | 2231 | return TRACE_TYPE_HANDLED; |
2290 | } | 2232 | } |
2291 | 2233 | ||
@@ -2296,9 +2238,6 @@ static enum print_line_t print_bin_fmt(struct trace_iterator *iter) | |||
2296 | 2238 | ||
2297 | entry = iter->ent; | 2239 | entry = iter->ent; |
2298 | 2240 | ||
2299 | if (entry->type == TRACE_CONT) | ||
2300 | return TRACE_TYPE_HANDLED; | ||
2301 | |||
2302 | SEQ_PUT_FIELD_RET(s, entry->pid); | 2241 | SEQ_PUT_FIELD_RET(s, entry->pid); |
2303 | SEQ_PUT_FIELD_RET(s, entry->cpu); | 2242 | SEQ_PUT_FIELD_RET(s, entry->cpu); |
2304 | SEQ_PUT_FIELD_RET(s, iter->ts); | 2243 | SEQ_PUT_FIELD_RET(s, iter->ts); |
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index cc7a4f864036..3a357382cce6 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h | |||
@@ -16,7 +16,6 @@ enum trace_type { | |||
16 | TRACE_FN, | 16 | TRACE_FN, |
17 | TRACE_CTX, | 17 | TRACE_CTX, |
18 | TRACE_WAKE, | 18 | TRACE_WAKE, |
19 | TRACE_CONT, | ||
20 | TRACE_STACK, | 19 | TRACE_STACK, |
21 | TRACE_PRINT, | 20 | TRACE_PRINT, |
22 | TRACE_SPECIAL, | 21 | TRACE_SPECIAL, |
@@ -178,7 +177,6 @@ struct trace_power { | |||
178 | * NEED_RESCED - reschedule is requested | 177 | * NEED_RESCED - reschedule is requested |
179 | * HARDIRQ - inside an interrupt handler | 178 | * HARDIRQ - inside an interrupt handler |
180 | * SOFTIRQ - inside a softirq handler | 179 | * SOFTIRQ - inside a softirq handler |
181 | * CONT - multiple entries hold the trace item | ||
182 | */ | 180 | */ |
183 | enum trace_flag_type { | 181 | enum trace_flag_type { |
184 | TRACE_FLAG_IRQS_OFF = 0x01, | 182 | TRACE_FLAG_IRQS_OFF = 0x01, |
@@ -186,7 +184,6 @@ enum trace_flag_type { | |||
186 | TRACE_FLAG_NEED_RESCHED = 0x04, | 184 | TRACE_FLAG_NEED_RESCHED = 0x04, |
187 | TRACE_FLAG_HARDIRQ = 0x08, | 185 | TRACE_FLAG_HARDIRQ = 0x08, |
188 | TRACE_FLAG_SOFTIRQ = 0x10, | 186 | TRACE_FLAG_SOFTIRQ = 0x10, |
189 | TRACE_FLAG_CONT = 0x20, | ||
190 | }; | 187 | }; |
191 | 188 | ||
192 | #define TRACE_BUF_SIZE 1024 | 189 | #define TRACE_BUF_SIZE 1024 |
@@ -262,7 +259,6 @@ extern void __ftrace_bad_type(void); | |||
262 | do { \ | 259 | do { \ |
263 | IF_ASSIGN(var, ent, struct ftrace_entry, TRACE_FN); \ | 260 | IF_ASSIGN(var, ent, struct ftrace_entry, TRACE_FN); \ |
264 | IF_ASSIGN(var, ent, struct ctx_switch_entry, 0); \ | 261 | IF_ASSIGN(var, ent, struct ctx_switch_entry, 0); \ |
265 | IF_ASSIGN(var, ent, struct trace_field_cont, TRACE_CONT); \ | ||
266 | IF_ASSIGN(var, ent, struct stack_entry, TRACE_STACK); \ | 262 | IF_ASSIGN(var, ent, struct stack_entry, TRACE_STACK); \ |
267 | IF_ASSIGN(var, ent, struct userstack_entry, TRACE_USER_STACK);\ | 263 | IF_ASSIGN(var, ent, struct userstack_entry, TRACE_USER_STACK);\ |
268 | IF_ASSIGN(var, ent, struct print_entry, TRACE_PRINT); \ | 264 | IF_ASSIGN(var, ent, struct print_entry, TRACE_PRINT); \ |
@@ -489,9 +485,6 @@ extern int trace_selftest_startup_branch(struct tracer *trace, | |||
489 | 485 | ||
490 | extern void *head_page(struct trace_array_cpu *data); | 486 | extern void *head_page(struct trace_array_cpu *data); |
491 | extern int trace_seq_printf(struct trace_seq *s, const char *fmt, ...); | 487 | extern int trace_seq_printf(struct trace_seq *s, const char *fmt, ...); |
492 | extern void trace_seq_print_cont(struct trace_seq *s, | ||
493 | struct trace_iterator *iter); | ||
494 | |||
495 | extern int | 488 | extern int |
496 | seq_print_ip_sym(struct trace_seq *s, unsigned long ip, | 489 | seq_print_ip_sym(struct trace_seq *s, unsigned long ip, |
497 | unsigned long sym_flags); | 490 | unsigned long sym_flags); |
diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c index bc7d90850be5..f261966e5b6c 100644 --- a/kernel/trace/trace_functions_graph.c +++ b/kernel/trace/trace_functions_graph.c | |||
@@ -589,9 +589,6 @@ print_graph_comment(struct print_entry *trace, struct trace_seq *s, | |||
589 | if (!ret) | 589 | if (!ret) |
590 | return TRACE_TYPE_PARTIAL_LINE; | 590 | return TRACE_TYPE_PARTIAL_LINE; |
591 | 591 | ||
592 | if (ent->flags & TRACE_FLAG_CONT) | ||
593 | trace_seq_print_cont(s, iter); | ||
594 | |||
595 | /* Strip ending newline */ | 592 | /* Strip ending newline */ |
596 | if (s->buffer[s->len - 1] == '\n') { | 593 | if (s->buffer[s->len - 1] == '\n') { |
597 | s->buffer[s->len - 1] = '\0'; | 594 | s->buffer[s->len - 1] = '\0'; |
diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c index fffcb069f1dc..83f20ae6bd68 100644 --- a/kernel/trace/trace_mmiotrace.c +++ b/kernel/trace/trace_mmiotrace.c | |||
@@ -262,9 +262,6 @@ static enum print_line_t mmio_print_mark(struct trace_iterator *iter) | |||
262 | if (!ret) | 262 | if (!ret) |
263 | return TRACE_TYPE_PARTIAL_LINE; | 263 | return TRACE_TYPE_PARTIAL_LINE; |
264 | 264 | ||
265 | if (entry->flags & TRACE_FLAG_CONT) | ||
266 | trace_seq_print_cont(s, iter); | ||
267 | |||
268 | return TRACE_TYPE_HANDLED; | 265 | return TRACE_TYPE_HANDLED; |
269 | } | 266 | } |
270 | 267 | ||