diff --git a/[refs] b/[refs] index b7e5956243ff..e47610b4869f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c4fe52a8ee730ed340eba8fe6ccbf26347ebe9aa +refs/heads/master: b3230c8b44da5838cf396942d5c1ab19f8e8f720 diff --git a/trunk/kernel/trace/ring_buffer.c b/trunk/kernel/trace/ring_buffer.c index 7f6059c5aa94..b0702ff78218 100644 --- a/trunk/kernel/trace/ring_buffer.c +++ b/trunk/kernel/trace/ring_buffer.c @@ -1768,6 +1768,14 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer, * must fill the old tail_page with padding. */ if (tail >= BUF_PAGE_SIZE) { + /* + * If the page was filled, then we still need + * to update the real_end. Reset it to zero + * and the reader will ignore it. + */ + if (tail == BUF_PAGE_SIZE) + tail_page->real_end = 0; + local_sub(length, &tail_page->write); return; } diff --git a/trunk/tools/perf/builtin-annotate.c b/trunk/tools/perf/builtin-annotate.c index 96db5248e995..08278eda31a5 100644 --- a/trunk/tools/perf/builtin-annotate.c +++ b/trunk/tools/perf/builtin-annotate.c @@ -343,7 +343,7 @@ static void hists__find_annotations(struct hists *self) continue; } - if (use_browser > 0) { + if (use_browser) { key = hist_entry__tui_annotate(he); if (is_exit_key(key)) break; diff --git a/trunk/tools/perf/builtin-top.c b/trunk/tools/perf/builtin-top.c index a66f4272b994..397290a0a76e 100644 --- a/trunk/tools/perf/builtin-top.c +++ b/trunk/tools/perf/builtin-top.c @@ -1060,7 +1060,7 @@ static void event__process_sample(const event_t *self, pr_err("Can't annotate %s", sym->name); if (sym_filter_entry->map->dso->origin == DSO__ORIG_KERNEL) { pr_err(": No vmlinux file was found in the path:\n"); - machine__fprintf_vmlinux_path(machine, stderr); + vmlinux_path__fprintf(stderr); } else pr_err(".\n"); exit(1); diff --git a/trunk/tools/perf/util/debug.c b/trunk/tools/perf/util/debug.c index 6cddff2bc970..dd824cf3b628 100644 --- a/trunk/tools/perf/util/debug.c +++ b/trunk/tools/perf/util/debug.c @@ -22,7 +22,7 @@ int eprintf(int level, const char *fmt, ...) if (verbose >= level) { va_start(args, fmt); - if (use_browser > 0) + if (use_browser) ret = browser__show_help(fmt, args); else ret = vfprintf(stderr, fmt, args); diff --git a/trunk/tools/perf/util/newt.c b/trunk/tools/perf/util/newt.c index cf182ca132fe..d54c540f49db 100644 --- a/trunk/tools/perf/util/newt.c +++ b/trunk/tools/perf/util/newt.c @@ -1139,7 +1139,6 @@ void setup_browser(void) struct newtPercentTreeColors *c = &defaultPercentTreeColors; if (!isatty(1) || !use_browser || dump_trace) { - use_browser = 0; setup_pager(); return; } diff --git a/trunk/tools/perf/util/symbol.c b/trunk/tools/perf/util/symbol.c index 7fd6b151feb5..aaa51ba147df 100644 --- a/trunk/tools/perf/util/symbol.c +++ b/trunk/tools/perf/util/symbol.c @@ -1695,20 +1695,9 @@ int dso__load_vmlinux_path(struct dso *self, struct map *map, symbol_filter_t filter) { int i, err = 0; - char *filename; pr_debug("Looking at the vmlinux_path (%d entries long)\n", - vmlinux_path__nr_entries + 1); - - filename = dso__build_id_filename(self, NULL, 0); - if (filename != NULL) { - err = dso__load_vmlinux(self, map, filename, filter); - if (err > 0) { - dso__set_long_name(self, filename); - goto out; - } - free(filename); - } + vmlinux_path__nr_entries); for (i = 0; i < vmlinux_path__nr_entries; ++i) { err = dso__load_vmlinux(self, map, vmlinux_path[i], filter); @@ -1717,7 +1706,7 @@ int dso__load_vmlinux_path(struct dso *self, struct map *map, break; } } -out: + return err; } @@ -2113,21 +2102,13 @@ static int vmlinux_path__init(void) return -1; } -size_t machine__fprintf_vmlinux_path(struct machine *self, FILE *fp) +size_t vmlinux_path__fprintf(FILE *fp) { int i; size_t printed = 0; - struct dso *kdso = self->vmlinux_maps[MAP__FUNCTION]->dso; - - if (kdso->has_build_id) { - char filename[PATH_MAX]; - if (dso__build_id_filename(kdso, filename, sizeof(filename))) - printed += fprintf(fp, "[0] %s\n", filename); - } for (i = 0; i < vmlinux_path__nr_entries; ++i) - printed += fprintf(fp, "[%d] %s\n", - i + kdso->has_build_id, vmlinux_path[i]); + printed += fprintf(fp, "[%d] %s\n", i, vmlinux_path[i]); return printed; } diff --git a/trunk/tools/perf/util/symbol.h b/trunk/tools/perf/util/symbol.h index 5e02d2c17154..5d25b5eb1456 100644 --- a/trunk/tools/perf/util/symbol.h +++ b/trunk/tools/perf/util/symbol.h @@ -216,6 +216,6 @@ int machines__create_guest_kernel_maps(struct rb_root *self); int symbol__init(void); bool symbol_type__is_a(char symbol_type, enum map_type map_type); -size_t machine__fprintf_vmlinux_path(struct machine *self, FILE *fp); +size_t vmlinux_path__fprintf(FILE *fp); #endif /* __PERF_SYMBOL */