Skip to content

Commit 798048f

Browse files
author
Ingo Molnar
committed
Merge tag 'perf-urgent-for-mingo-5.6-20200306' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/urgent fixes from Arnaldo Carvalho de Melo: perf top: Tommi Rantala: - Fix stdio interface input handling with glibc 2.28+. perf bench: Tommi Rantala: - Restore thread count default to online CPU count in futex-wake bench. perf jevents: John Garry: - Fix leak of mapfile memory. perf diff: Nick Desaulniers: - Fix undefined string comparision spotted by clang's -Wstring-compare. misc: Ian Rogers: - Fix off-by 1 relative directory includes. Signed-off-by: Arnaldo Carvalho de Melo <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2 parents b95b4d5 + 441b62a commit 798048f

24 files changed

+98
-84
lines changed

tools/include/uapi/asm/errno.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
/* SPDX-License-Identifier: GPL-2.0 */
22
#if defined(__i386__) || defined(__x86_64__)
3-
#include "../../arch/x86/include/uapi/asm/errno.h"
3+
#include "../../../arch/x86/include/uapi/asm/errno.h"
44
#elif defined(__powerpc__)
5-
#include "../../arch/powerpc/include/uapi/asm/errno.h"
5+
#include "../../../arch/powerpc/include/uapi/asm/errno.h"
66
#elif defined(__sparc__)
7-
#include "../../arch/sparc/include/uapi/asm/errno.h"
7+
#include "../../../arch/sparc/include/uapi/asm/errno.h"
88
#elif defined(__alpha__)
9-
#include "../../arch/alpha/include/uapi/asm/errno.h"
9+
#include "../../../arch/alpha/include/uapi/asm/errno.h"
1010
#elif defined(__mips__)
11-
#include "../../arch/mips/include/uapi/asm/errno.h"
11+
#include "../../../arch/mips/include/uapi/asm/errno.h"
1212
#elif defined(__ia64__)
13-
#include "../../arch/ia64/include/uapi/asm/errno.h"
13+
#include "../../../arch/ia64/include/uapi/asm/errno.h"
1414
#elif defined(__xtensa__)
15-
#include "../../arch/xtensa/include/uapi/asm/errno.h"
15+
#include "../../../arch/xtensa/include/uapi/asm/errno.h"
1616
#else
1717
#include <asm-generic/errno.h>
1818
#endif

tools/perf/arch/arm64/util/arm-spe.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,17 @@
1111
#include <linux/zalloc.h>
1212
#include <time.h>
1313

14-
#include "../../util/cpumap.h"
15-
#include "../../util/event.h"
16-
#include "../../util/evsel.h"
17-
#include "../../util/evlist.h"
18-
#include "../../util/session.h"
14+
#include "../../../util/cpumap.h"
15+
#include "../../../util/event.h"
16+
#include "../../../util/evsel.h"
17+
#include "../../../util/evlist.h"
18+
#include "../../../util/session.h"
1919
#include <internal/lib.h> // page_size
20-
#include "../../util/pmu.h"
21-
#include "../../util/debug.h"
22-
#include "../../util/auxtrace.h"
23-
#include "../../util/record.h"
24-
#include "../../util/arm-spe.h"
20+
#include "../../../util/pmu.h"
21+
#include "../../../util/debug.h"
22+
#include "../../../util/auxtrace.h"
23+
#include "../../../util/record.h"
24+
#include "../../../util/arm-spe.h"
2525

2626
#define KiB(x) ((x) * 1024)
2727
#define MiB(x) ((x) * 1024 * 1024)

tools/perf/arch/arm64/util/perf_regs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: GPL-2.0
2-
#include "../../util/perf_regs.h"
2+
#include "../../../util/perf_regs.h"
33

44
const struct sample_reg sample_reg_masks[] = {
55
SMPL_REG_END

tools/perf/arch/powerpc/util/perf_regs.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
#include <regex.h>
55
#include <linux/zalloc.h>
66

7-
#include "../../util/perf_regs.h"
8-
#include "../../util/debug.h"
7+
#include "../../../util/perf_regs.h"
8+
#include "../../../util/debug.h"
99

1010
#include <linux/kernel.h>
1111

tools/perf/arch/x86/util/auxtrace.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77
#include <errno.h>
88
#include <stdbool.h>
99

10-
#include "../../util/header.h"
11-
#include "../../util/debug.h"
12-
#include "../../util/pmu.h"
13-
#include "../../util/auxtrace.h"
14-
#include "../../util/intel-pt.h"
15-
#include "../../util/intel-bts.h"
16-
#include "../../util/evlist.h"
10+
#include "../../../util/header.h"
11+
#include "../../../util/debug.h"
12+
#include "../../../util/pmu.h"
13+
#include "../../../util/auxtrace.h"
14+
#include "../../../util/intel-pt.h"
15+
#include "../../../util/intel-bts.h"
16+
#include "../../../util/evlist.h"
1717

1818
static
1919
struct auxtrace_record *auxtrace_record__init_intel(struct evlist *evlist,

tools/perf/arch/x86/util/event.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
#include <linux/string.h>
44
#include <linux/zalloc.h>
55

6-
#include "../../util/event.h"
7-
#include "../../util/synthetic-events.h"
8-
#include "../../util/machine.h"
9-
#include "../../util/tool.h"
10-
#include "../../util/map.h"
11-
#include "../../util/debug.h"
6+
#include "../../../util/event.h"
7+
#include "../../../util/synthetic-events.h"
8+
#include "../../../util/machine.h"
9+
#include "../../../util/tool.h"
10+
#include "../../../util/map.h"
11+
#include "../../../util/debug.h"
1212

1313
#if defined(__x86_64__)
1414

tools/perf/arch/x86/util/header.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
#include <string.h>
88
#include <regex.h>
99

10-
#include "../../util/debug.h"
11-
#include "../../util/header.h"
10+
#include "../../../util/debug.h"
11+
#include "../../../util/header.h"
1212

1313
static inline void
1414
cpuid(unsigned int op, unsigned int *a, unsigned int *b, unsigned int *c,

tools/perf/arch/x86/util/intel-bts.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,18 @@
1111
#include <linux/log2.h>
1212
#include <linux/zalloc.h>
1313

14-
#include "../../util/cpumap.h"
15-
#include "../../util/event.h"
16-
#include "../../util/evsel.h"
17-
#include "../../util/evlist.h"
18-
#include "../../util/mmap.h"
19-
#include "../../util/session.h"
20-
#include "../../util/pmu.h"
21-
#include "../../util/debug.h"
22-
#include "../../util/record.h"
23-
#include "../../util/tsc.h"
24-
#include "../../util/auxtrace.h"
25-
#include "../../util/intel-bts.h"
14+
#include "../../../util/cpumap.h"
15+
#include "../../../util/event.h"
16+
#include "../../../util/evsel.h"
17+
#include "../../../util/evlist.h"
18+
#include "../../../util/mmap.h"
19+
#include "../../../util/session.h"
20+
#include "../../../util/pmu.h"
21+
#include "../../../util/debug.h"
22+
#include "../../../util/record.h"
23+
#include "../../../util/tsc.h"
24+
#include "../../../util/auxtrace.h"
25+
#include "../../../util/intel-bts.h"
2626
#include <internal/lib.h> // page_size
2727

2828
#define KiB(x) ((x) * 1024)

tools/perf/arch/x86/util/intel-pt.c

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,23 @@
1313
#include <linux/zalloc.h>
1414
#include <cpuid.h>
1515

16-
#include "../../util/session.h"
17-
#include "../../util/event.h"
18-
#include "../../util/evlist.h"
19-
#include "../../util/evsel.h"
20-
#include "../../util/evsel_config.h"
21-
#include "../../util/cpumap.h"
22-
#include "../../util/mmap.h"
16+
#include "../../../util/session.h"
17+
#include "../../../util/event.h"
18+
#include "../../../util/evlist.h"
19+
#include "../../../util/evsel.h"
20+
#include "../../../util/evsel_config.h"
21+
#include "../../../util/cpumap.h"
22+
#include "../../../util/mmap.h"
2323
#include <subcmd/parse-options.h>
24-
#include "../../util/parse-events.h"
25-
#include "../../util/pmu.h"
26-
#include "../../util/debug.h"
27-
#include "../../util/auxtrace.h"
28-
#include "../../util/record.h"
29-
#include "../../util/target.h"
30-
#include "../../util/tsc.h"
24+
#include "../../../util/parse-events.h"
25+
#include "../../../util/pmu.h"
26+
#include "../../../util/debug.h"
27+
#include "../../../util/auxtrace.h"
28+
#include "../../../util/record.h"
29+
#include "../../../util/target.h"
30+
#include "../../../util/tsc.h"
3131
#include <internal/lib.h> // page_size
32-
#include "../../util/intel-pt.h"
32+
#include "../../../util/intel-pt.h"
3333

3434
#define KiB(x) ((x) * 1024)
3535
#define MiB(x) ((x) * 1024 * 1024)

tools/perf/arch/x86/util/machine.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
#include <stdlib.h>
66

77
#include <internal/lib.h> // page_size
8-
#include "../../util/machine.h"
9-
#include "../../util/map.h"
10-
#include "../../util/symbol.h"
8+
#include "../../../util/machine.h"
9+
#include "../../../util/map.h"
10+
#include "../../../util/symbol.h"
1111
#include <linux/ctype.h>
1212

1313
#include <symbol/kallsyms.h>

tools/perf/arch/x86/util/perf_regs.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
#include <linux/kernel.h>
66
#include <linux/zalloc.h>
77

8-
#include "../../perf-sys.h"
9-
#include "../../util/perf_regs.h"
10-
#include "../../util/debug.h"
11-
#include "../../util/event.h"
8+
#include "../../../perf-sys.h"
9+
#include "../../../util/perf_regs.h"
10+
#include "../../../util/debug.h"
11+
#include "../../../util/event.h"
1212

1313
const struct sample_reg sample_reg_masks[] = {
1414
SMPL_REG(AX, PERF_REG_X86_AX),

tools/perf/arch/x86/util/pmu.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
#include <linux/stddef.h>
55
#include <linux/perf_event.h>
66

7-
#include "../../util/intel-pt.h"
8-
#include "../../util/intel-bts.h"
9-
#include "../../util/pmu.h"
7+
#include "../../../util/intel-pt.h"
8+
#include "../../../util/intel-bts.h"
9+
#include "../../../util/pmu.h"
1010

1111
struct perf_event_attr *perf_pmu__get_default_config(struct perf_pmu *pmu __maybe_unused)
1212
{

tools/perf/bench/epoll-ctl.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,7 @@ int bench_epoll_ctl(int argc, const char **argv)
312312
exit(EXIT_FAILURE);
313313
}
314314

315+
memset(&act, 0, sizeof(act));
315316
sigfillset(&act.sa_mask);
316317
act.sa_sigaction = toggle_done;
317318
sigaction(SIGINT, &act, NULL);

tools/perf/bench/epoll-wait.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,7 @@ int bench_epoll_wait(int argc, const char **argv)
426426
exit(EXIT_FAILURE);
427427
}
428428

429+
memset(&act, 0, sizeof(act));
429430
sigfillset(&act.sa_mask);
430431
act.sa_sigaction = toggle_done;
431432
sigaction(SIGINT, &act, NULL);

tools/perf/bench/futex-hash.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ int bench_futex_hash(int argc, const char **argv)
137137
if (!cpu)
138138
goto errmem;
139139

140+
memset(&act, 0, sizeof(act));
140141
sigfillset(&act.sa_mask);
141142
act.sa_sigaction = toggle_done;
142143
sigaction(SIGINT, &act, NULL);

tools/perf/bench/futex-lock-pi.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ int bench_futex_lock_pi(int argc, const char **argv)
160160
if (!cpu)
161161
err(EXIT_FAILURE, "calloc");
162162

163+
memset(&act, 0, sizeof(act));
163164
sigfillset(&act.sa_mask);
164165
act.sa_sigaction = toggle_done;
165166
sigaction(SIGINT, &act, NULL);

tools/perf/bench/futex-requeue.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ int bench_futex_requeue(int argc, const char **argv)
128128
if (!cpu)
129129
err(EXIT_FAILURE, "cpu_map__new");
130130

131+
memset(&act, 0, sizeof(act));
131132
sigfillset(&act.sa_mask);
132133
act.sa_sigaction = toggle_done;
133134
sigaction(SIGINT, &act, NULL);

tools/perf/bench/futex-wake-parallel.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ int bench_futex_wake_parallel(int argc, const char **argv)
234234
exit(EXIT_FAILURE);
235235
}
236236

237+
memset(&act, 0, sizeof(act));
237238
sigfillset(&act.sa_mask);
238239
act.sa_sigaction = toggle_done;
239240
sigaction(SIGINT, &act, NULL);

tools/perf/bench/futex-wake.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ static bool done = false, silent = false, fshared = false;
4343
static pthread_mutex_t thread_lock;
4444
static pthread_cond_t thread_parent, thread_worker;
4545
static struct stats waketime_stats, wakeup_stats;
46-
static unsigned int ncpus, threads_starting, nthreads = 0;
46+
static unsigned int threads_starting, nthreads = 0;
4747
static int futex_flag = 0;
4848

4949
static const struct option options[] = {
@@ -136,12 +136,13 @@ int bench_futex_wake(int argc, const char **argv)
136136
if (!cpu)
137137
err(EXIT_FAILURE, "calloc");
138138

139+
memset(&act, 0, sizeof(act));
139140
sigfillset(&act.sa_mask);
140141
act.sa_sigaction = toggle_done;
141142
sigaction(SIGINT, &act, NULL);
142143

143144
if (!nthreads)
144-
nthreads = ncpus;
145+
nthreads = cpu->nr;
145146

146147
worker = calloc(nthreads, sizeof(*worker));
147148
if (!worker)

tools/perf/builtin-diff.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1312,7 +1312,8 @@ static int cycles_printf(struct hist_entry *he, struct hist_entry *pair,
13121312
end_line = map__srcline(he->ms.map, bi->sym->start + bi->end,
13131313
he->ms.sym);
13141314

1315-
if ((start_line != SRCLINE_UNKNOWN) && (end_line != SRCLINE_UNKNOWN)) {
1315+
if ((strncmp(start_line, SRCLINE_UNKNOWN, strlen(SRCLINE_UNKNOWN)) != 0) &&
1316+
(strncmp(end_line, SRCLINE_UNKNOWN, strlen(SRCLINE_UNKNOWN)) != 0)) {
13161317
scnprintf(buf, sizeof(buf), "[%s -> %s] %4ld",
13171318
start_line, end_line, block_he->diff.cycles);
13181319
} else {

tools/perf/builtin-top.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -684,7 +684,9 @@ static void *display_thread(void *arg)
684684
delay_msecs = top->delay_secs * MSEC_PER_SEC;
685685
set_term_quiet_input(&save);
686686
/* trash return*/
687-
getc(stdin);
687+
clearerr(stdin);
688+
if (poll(&stdin_poll, 1, 0) > 0)
689+
getc(stdin);
688690

689691
while (!done) {
690692
perf_top__print_sym_table(top);

tools/perf/pmu-events/jevents.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1082,10 +1082,9 @@ static int process_one_file(const char *fpath, const struct stat *sb,
10821082
*/
10831083
int main(int argc, char *argv[])
10841084
{
1085-
int rc;
1085+
int rc, ret = 0;
10861086
int maxfds;
10871087
char ldirname[PATH_MAX];
1088-
10891088
const char *arch;
10901089
const char *output_file;
10911090
const char *start_dirname;
@@ -1156,7 +1155,8 @@ int main(int argc, char *argv[])
11561155
/* Make build fail */
11571156
fclose(eventsfp);
11581157
free_arch_std_events();
1159-
return 1;
1158+
ret = 1;
1159+
goto out_free_mapfile;
11601160
} else if (rc) {
11611161
goto empty_map;
11621162
}
@@ -1174,14 +1174,17 @@ int main(int argc, char *argv[])
11741174
/* Make build fail */
11751175
fclose(eventsfp);
11761176
free_arch_std_events();
1177-
return 1;
1177+
ret = 1;
11781178
}
11791179

1180-
return 0;
1180+
1181+
goto out_free_mapfile;
11811182

11821183
empty_map:
11831184
fclose(eventsfp);
11841185
create_empty_mapping(output_file);
11851186
free_arch_std_events();
1186-
return 0;
1187+
out_free_mapfile:
1188+
free(mapfile);
1189+
return ret;
11871190
}

tools/perf/util/block-info.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,8 @@ static int block_range_entry(struct perf_hpp_fmt *fmt, struct perf_hpp *hpp,
295295
end_line = map__srcline(he->ms.map, bi->sym->start + bi->end,
296296
he->ms.sym);
297297

298-
if ((start_line != SRCLINE_UNKNOWN) && (end_line != SRCLINE_UNKNOWN)) {
298+
if ((strncmp(start_line, SRCLINE_UNKNOWN, strlen(SRCLINE_UNKNOWN)) != 0) &&
299+
(strncmp(end_line, SRCLINE_UNKNOWN, strlen(SRCLINE_UNKNOWN)) != 0)) {
299300
scnprintf(buf, sizeof(buf), "[%s -> %s]",
300301
start_line, end_line);
301302
} else {

tools/perf/util/map.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@ int map__fprintf_srcline(struct map *map, u64 addr, const char *prefix,
431431

432432
if (map && map->dso) {
433433
char *srcline = map__srcline(map, addr, NULL);
434-
if (srcline != SRCLINE_UNKNOWN)
434+
if (strncmp(srcline, SRCLINE_UNKNOWN, strlen(SRCLINE_UNKNOWN)) != 0)
435435
ret = fprintf(fp, "%s%s", prefix, srcline);
436436
free_srcline(srcline);
437437
}

0 commit comments

Comments
 (0)