diff options
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/lib/lockdep/run_tests.sh | 12 | ||||
-rw-r--r-- | tools/perf/MANIFEST | 1 | ||||
-rw-r--r-- | tools/perf/arch/powerpc/util/header.c | 2 | ||||
-rwxr-xr-x | tools/perf/tests/perf-targz-src-pkg | 2 | ||||
-rw-r--r-- | tools/perf/ui/browsers/hists.c | 2 | ||||
-rw-r--r-- | tools/perf/util/event.c | 23 | ||||
-rw-r--r-- | tools/perf/util/genelf.h | 24 | ||||
-rw-r--r-- | tools/perf/util/intel-bts.c | 1 | ||||
-rw-r--r-- | tools/perf/util/intel-pt.c | 3 | ||||
-rw-r--r-- | tools/perf/util/jitdump.c | 2 | ||||
-rw-r--r-- | tools/power/x86/turbostat/turbostat.c | 117 | ||||
-rw-r--r-- | tools/testing/selftests/seccomp/seccomp_bpf.c | 22 |
12 files changed, 163 insertions, 48 deletions
diff --git a/tools/lib/lockdep/run_tests.sh b/tools/lib/lockdep/run_tests.sh index 5334ad9d39b7..1069d96248c1 100755 --- a/tools/lib/lockdep/run_tests.sh +++ b/tools/lib/lockdep/run_tests.sh | |||
@@ -3,7 +3,7 @@ | |||
3 | make &> /dev/null | 3 | make &> /dev/null |
4 | 4 | ||
5 | for i in `ls tests/*.c`; do | 5 | for i in `ls tests/*.c`; do |
6 | testname=$(basename -s .c "$i") | 6 | testname=$(basename "$i" .c) |
7 | gcc -o tests/$testname -pthread -lpthread $i liblockdep.a -Iinclude -D__USE_LIBLOCKDEP &> /dev/null | 7 | gcc -o tests/$testname -pthread -lpthread $i liblockdep.a -Iinclude -D__USE_LIBLOCKDEP &> /dev/null |
8 | echo -ne "$testname... " | 8 | echo -ne "$testname... " |
9 | if [ $(timeout 1 ./tests/$testname | wc -l) -gt 0 ]; then | 9 | if [ $(timeout 1 ./tests/$testname | wc -l) -gt 0 ]; then |
@@ -11,11 +11,13 @@ for i in `ls tests/*.c`; do | |||
11 | else | 11 | else |
12 | echo "FAILED!" | 12 | echo "FAILED!" |
13 | fi | 13 | fi |
14 | rm tests/$testname | 14 | if [ -f "tests/$testname" ]; then |
15 | rm tests/$testname | ||
16 | fi | ||
15 | done | 17 | done |
16 | 18 | ||
17 | for i in `ls tests/*.c`; do | 19 | for i in `ls tests/*.c`; do |
18 | testname=$(basename -s .c "$i") | 20 | testname=$(basename "$i" .c) |
19 | gcc -o tests/$testname -pthread -lpthread -Iinclude $i &> /dev/null | 21 | gcc -o tests/$testname -pthread -lpthread -Iinclude $i &> /dev/null |
20 | echo -ne "(PRELOAD) $testname... " | 22 | echo -ne "(PRELOAD) $testname... " |
21 | if [ $(timeout 1 ./lockdep ./tests/$testname | wc -l) -gt 0 ]; then | 23 | if [ $(timeout 1 ./lockdep ./tests/$testname | wc -l) -gt 0 ]; then |
@@ -23,5 +25,7 @@ for i in `ls tests/*.c`; do | |||
23 | else | 25 | else |
24 | echo "FAILED!" | 26 | echo "FAILED!" |
25 | fi | 27 | fi |
26 | rm tests/$testname | 28 | if [ -f "tests/$testname" ]; then |
29 | rm tests/$testname | ||
30 | fi | ||
27 | done | 31 | done |
diff --git a/tools/perf/MANIFEST b/tools/perf/MANIFEST index 2e1fa2357528..8c8c6b9ce915 100644 --- a/tools/perf/MANIFEST +++ b/tools/perf/MANIFEST | |||
@@ -74,6 +74,7 @@ arch/*/include/uapi/asm/unistd*.h | |||
74 | arch/*/include/uapi/asm/perf_regs.h | 74 | arch/*/include/uapi/asm/perf_regs.h |
75 | arch/*/lib/memcpy*.S | 75 | arch/*/lib/memcpy*.S |
76 | arch/*/lib/memset*.S | 76 | arch/*/lib/memset*.S |
77 | arch/*/include/asm/*features.h | ||
77 | include/linux/poison.h | 78 | include/linux/poison.h |
78 | include/linux/hw_breakpoint.h | 79 | include/linux/hw_breakpoint.h |
79 | include/uapi/linux/perf_event.h | 80 | include/uapi/linux/perf_event.h |
diff --git a/tools/perf/arch/powerpc/util/header.c b/tools/perf/arch/powerpc/util/header.c index 6138bdef6e63..f8ccee132867 100644 --- a/tools/perf/arch/powerpc/util/header.c +++ b/tools/perf/arch/powerpc/util/header.c | |||
@@ -4,6 +4,8 @@ | |||
4 | #include <stdlib.h> | 4 | #include <stdlib.h> |
5 | #include <string.h> | 5 | #include <string.h> |
6 | #include <linux/stringify.h> | 6 | #include <linux/stringify.h> |
7 | #include "header.h" | ||
8 | #include "util.h" | ||
7 | 9 | ||
8 | #define mfspr(rn) ({unsigned long rval; \ | 10 | #define mfspr(rn) ({unsigned long rval; \ |
9 | asm volatile("mfspr %0," __stringify(rn) \ | 11 | asm volatile("mfspr %0," __stringify(rn) \ |
diff --git a/tools/perf/tests/perf-targz-src-pkg b/tools/perf/tests/perf-targz-src-pkg index 238aa3927c71..f2d9c5fe58e0 100755 --- a/tools/perf/tests/perf-targz-src-pkg +++ b/tools/perf/tests/perf-targz-src-pkg | |||
@@ -15,7 +15,7 @@ TMP_DEST=$(mktemp -d) | |||
15 | tar xf ${TARBALL} -C $TMP_DEST | 15 | tar xf ${TARBALL} -C $TMP_DEST |
16 | rm -f ${TARBALL} | 16 | rm -f ${TARBALL} |
17 | cd - > /dev/null | 17 | cd - > /dev/null |
18 | make -C $TMP_DEST/perf*/tools/perf > /dev/null 2>&1 | 18 | make -C $TMP_DEST/perf*/tools/perf > /dev/null |
19 | RC=$? | 19 | RC=$? |
20 | rm -rf ${TMP_DEST} | 20 | rm -rf ${TMP_DEST} |
21 | exit $RC | 21 | exit $RC |
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c index 4b9816555946..2a83414159a6 100644 --- a/tools/perf/ui/browsers/hists.c +++ b/tools/perf/ui/browsers/hists.c | |||
@@ -337,7 +337,7 @@ static void callchain_node__init_have_children(struct callchain_node *node, | |||
337 | chain = list_entry(node->val.next, struct callchain_list, list); | 337 | chain = list_entry(node->val.next, struct callchain_list, list); |
338 | chain->has_children = has_sibling; | 338 | chain->has_children = has_sibling; |
339 | 339 | ||
340 | if (node->val.next != node->val.prev) { | 340 | if (!list_empty(&node->val)) { |
341 | chain = list_entry(node->val.prev, struct callchain_list, list); | 341 | chain = list_entry(node->val.prev, struct callchain_list, list); |
342 | chain->has_children = !RB_EMPTY_ROOT(&node->rb_root); | 342 | chain->has_children = !RB_EMPTY_ROOT(&node->rb_root); |
343 | } | 343 | } |
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c index 52cf479bc593..dad55d04ffdd 100644 --- a/tools/perf/util/event.c +++ b/tools/perf/util/event.c | |||
@@ -56,13 +56,22 @@ const char *perf_event__name(unsigned int id) | |||
56 | return perf_event__names[id]; | 56 | return perf_event__names[id]; |
57 | } | 57 | } |
58 | 58 | ||
59 | static struct perf_sample synth_sample = { | 59 | static int perf_tool__process_synth_event(struct perf_tool *tool, |
60 | union perf_event *event, | ||
61 | struct machine *machine, | ||
62 | perf_event__handler_t process) | ||
63 | { | ||
64 | struct perf_sample synth_sample = { | ||
60 | .pid = -1, | 65 | .pid = -1, |
61 | .tid = -1, | 66 | .tid = -1, |
62 | .time = -1, | 67 | .time = -1, |
63 | .stream_id = -1, | 68 | .stream_id = -1, |
64 | .cpu = -1, | 69 | .cpu = -1, |
65 | .period = 1, | 70 | .period = 1, |
71 | .cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK, | ||
72 | }; | ||
73 | |||
74 | return process(tool, event, &synth_sample, machine); | ||
66 | }; | 75 | }; |
67 | 76 | ||
68 | /* | 77 | /* |
@@ -186,7 +195,7 @@ pid_t perf_event__synthesize_comm(struct perf_tool *tool, | |||
186 | if (perf_event__prepare_comm(event, pid, machine, &tgid, &ppid) != 0) | 195 | if (perf_event__prepare_comm(event, pid, machine, &tgid, &ppid) != 0) |
187 | return -1; | 196 | return -1; |
188 | 197 | ||
189 | if (process(tool, event, &synth_sample, machine) != 0) | 198 | if (perf_tool__process_synth_event(tool, event, machine, process) != 0) |
190 | return -1; | 199 | return -1; |
191 | 200 | ||
192 | return tgid; | 201 | return tgid; |
@@ -218,7 +227,7 @@ static int perf_event__synthesize_fork(struct perf_tool *tool, | |||
218 | 227 | ||
219 | event->fork.header.size = (sizeof(event->fork) + machine->id_hdr_size); | 228 | event->fork.header.size = (sizeof(event->fork) + machine->id_hdr_size); |
220 | 229 | ||
221 | if (process(tool, event, &synth_sample, machine) != 0) | 230 | if (perf_tool__process_synth_event(tool, event, machine, process) != 0) |
222 | return -1; | 231 | return -1; |
223 | 232 | ||
224 | return 0; | 233 | return 0; |
@@ -344,7 +353,7 @@ out: | |||
344 | event->mmap2.pid = tgid; | 353 | event->mmap2.pid = tgid; |
345 | event->mmap2.tid = pid; | 354 | event->mmap2.tid = pid; |
346 | 355 | ||
347 | if (process(tool, event, &synth_sample, machine) != 0) { | 356 | if (perf_tool__process_synth_event(tool, event, machine, process) != 0) { |
348 | rc = -1; | 357 | rc = -1; |
349 | break; | 358 | break; |
350 | } | 359 | } |
@@ -402,7 +411,7 @@ int perf_event__synthesize_modules(struct perf_tool *tool, | |||
402 | 411 | ||
403 | memcpy(event->mmap.filename, pos->dso->long_name, | 412 | memcpy(event->mmap.filename, pos->dso->long_name, |
404 | pos->dso->long_name_len + 1); | 413 | pos->dso->long_name_len + 1); |
405 | if (process(tool, event, &synth_sample, machine) != 0) { | 414 | if (perf_tool__process_synth_event(tool, event, machine, process) != 0) { |
406 | rc = -1; | 415 | rc = -1; |
407 | break; | 416 | break; |
408 | } | 417 | } |
@@ -472,7 +481,7 @@ static int __event__synthesize_thread(union perf_event *comm_event, | |||
472 | /* | 481 | /* |
473 | * Send the prepared comm event | 482 | * Send the prepared comm event |
474 | */ | 483 | */ |
475 | if (process(tool, comm_event, &synth_sample, machine) != 0) | 484 | if (perf_tool__process_synth_event(tool, comm_event, machine, process) != 0) |
476 | break; | 485 | break; |
477 | 486 | ||
478 | rc = 0; | 487 | rc = 0; |
@@ -701,7 +710,7 @@ int perf_event__synthesize_kernel_mmap(struct perf_tool *tool, | |||
701 | event->mmap.len = map->end - event->mmap.start; | 710 | event->mmap.len = map->end - event->mmap.start; |
702 | event->mmap.pid = machine->pid; | 711 | event->mmap.pid = machine->pid; |
703 | 712 | ||
704 | err = process(tool, event, &synth_sample, machine); | 713 | err = perf_tool__process_synth_event(tool, event, machine, process); |
705 | free(event); | 714 | free(event); |
706 | 715 | ||
707 | return err; | 716 | return err; |
diff --git a/tools/perf/util/genelf.h b/tools/perf/util/genelf.h index cd67e64a0494..2fbeb59c4bdd 100644 --- a/tools/perf/util/genelf.h +++ b/tools/perf/util/genelf.h | |||
@@ -9,36 +9,32 @@ int jit_add_debug_info(Elf *e, uint64_t code_addr, void *debug, int nr_debug_ent | |||
9 | 9 | ||
10 | #if defined(__arm__) | 10 | #if defined(__arm__) |
11 | #define GEN_ELF_ARCH EM_ARM | 11 | #define GEN_ELF_ARCH EM_ARM |
12 | #define GEN_ELF_ENDIAN ELFDATA2LSB | ||
13 | #define GEN_ELF_CLASS ELFCLASS32 | 12 | #define GEN_ELF_CLASS ELFCLASS32 |
14 | #elif defined(__aarch64__) | 13 | #elif defined(__aarch64__) |
15 | #define GEN_ELF_ARCH EM_AARCH64 | 14 | #define GEN_ELF_ARCH EM_AARCH64 |
16 | #define GEN_ELF_ENDIAN ELFDATA2LSB | ||
17 | #define GEN_ELF_CLASS ELFCLASS64 | 15 | #define GEN_ELF_CLASS ELFCLASS64 |
18 | #elif defined(__x86_64__) | 16 | #elif defined(__x86_64__) |
19 | #define GEN_ELF_ARCH EM_X86_64 | 17 | #define GEN_ELF_ARCH EM_X86_64 |
20 | #define GEN_ELF_ENDIAN ELFDATA2LSB | ||
21 | #define GEN_ELF_CLASS ELFCLASS64 | 18 | #define GEN_ELF_CLASS ELFCLASS64 |
22 | #elif defined(__i386__) | 19 | #elif defined(__i386__) |
23 | #define GEN_ELF_ARCH EM_386 | 20 | #define GEN_ELF_ARCH EM_386 |
24 | #define GEN_ELF_ENDIAN ELFDATA2LSB | ||
25 | #define GEN_ELF_CLASS ELFCLASS32 | 21 | #define GEN_ELF_CLASS ELFCLASS32 |
26 | #elif defined(__ppcle__) | 22 | #elif defined(__powerpc64__) |
27 | #define GEN_ELF_ARCH EM_PPC | ||
28 | #define GEN_ELF_ENDIAN ELFDATA2LSB | ||
29 | #define GEN_ELF_CLASS ELFCLASS64 | ||
30 | #elif defined(__powerpc__) | ||
31 | #define GEN_ELF_ARCH EM_PPC64 | ||
32 | #define GEN_ELF_ENDIAN ELFDATA2MSB | ||
33 | #define GEN_ELF_CLASS ELFCLASS64 | ||
34 | #elif defined(__powerpcle__) | ||
35 | #define GEN_ELF_ARCH EM_PPC64 | 23 | #define GEN_ELF_ARCH EM_PPC64 |
36 | #define GEN_ELF_ENDIAN ELFDATA2LSB | ||
37 | #define GEN_ELF_CLASS ELFCLASS64 | 24 | #define GEN_ELF_CLASS ELFCLASS64 |
25 | #elif defined(__powerpc__) | ||
26 | #define GEN_ELF_ARCH EM_PPC | ||
27 | #define GEN_ELF_CLASS ELFCLASS32 | ||
38 | #else | 28 | #else |
39 | #error "unsupported architecture" | 29 | #error "unsupported architecture" |
40 | #endif | 30 | #endif |
41 | 31 | ||
32 | #if __BYTE_ORDER == __BIG_ENDIAN | ||
33 | #define GEN_ELF_ENDIAN ELFDATA2MSB | ||
34 | #else | ||
35 | #define GEN_ELF_ENDIAN ELFDATA2LSB | ||
36 | #endif | ||
37 | |||
42 | #if GEN_ELF_CLASS == ELFCLASS64 | 38 | #if GEN_ELF_CLASS == ELFCLASS64 |
43 | #define elf_newehdr elf64_newehdr | 39 | #define elf_newehdr elf64_newehdr |
44 | #define elf_getshdr elf64_getshdr | 40 | #define elf_getshdr elf64_getshdr |
diff --git a/tools/perf/util/intel-bts.c b/tools/perf/util/intel-bts.c index 6bc3ecd2e7ca..abf1366e2a24 100644 --- a/tools/perf/util/intel-bts.c +++ b/tools/perf/util/intel-bts.c | |||
@@ -279,6 +279,7 @@ static int intel_bts_synth_branch_sample(struct intel_bts_queue *btsq, | |||
279 | event.sample.header.misc = PERF_RECORD_MISC_USER; | 279 | event.sample.header.misc = PERF_RECORD_MISC_USER; |
280 | event.sample.header.size = sizeof(struct perf_event_header); | 280 | event.sample.header.size = sizeof(struct perf_event_header); |
281 | 281 | ||
282 | sample.cpumode = PERF_RECORD_MISC_USER; | ||
282 | sample.ip = le64_to_cpu(branch->from); | 283 | sample.ip = le64_to_cpu(branch->from); |
283 | sample.pid = btsq->pid; | 284 | sample.pid = btsq->pid; |
284 | sample.tid = btsq->tid; | 285 | sample.tid = btsq->tid; |
diff --git a/tools/perf/util/intel-pt.c b/tools/perf/util/intel-pt.c index 05d815851be1..407f11b97c8d 100644 --- a/tools/perf/util/intel-pt.c +++ b/tools/perf/util/intel-pt.c | |||
@@ -979,6 +979,7 @@ static int intel_pt_synth_branch_sample(struct intel_pt_queue *ptq) | |||
979 | if (!pt->timeless_decoding) | 979 | if (!pt->timeless_decoding) |
980 | sample.time = tsc_to_perf_time(ptq->timestamp, &pt->tc); | 980 | sample.time = tsc_to_perf_time(ptq->timestamp, &pt->tc); |
981 | 981 | ||
982 | sample.cpumode = PERF_RECORD_MISC_USER; | ||
982 | sample.ip = ptq->state->from_ip; | 983 | sample.ip = ptq->state->from_ip; |
983 | sample.pid = ptq->pid; | 984 | sample.pid = ptq->pid; |
984 | sample.tid = ptq->tid; | 985 | sample.tid = ptq->tid; |
@@ -1035,6 +1036,7 @@ static int intel_pt_synth_instruction_sample(struct intel_pt_queue *ptq) | |||
1035 | if (!pt->timeless_decoding) | 1036 | if (!pt->timeless_decoding) |
1036 | sample.time = tsc_to_perf_time(ptq->timestamp, &pt->tc); | 1037 | sample.time = tsc_to_perf_time(ptq->timestamp, &pt->tc); |
1037 | 1038 | ||
1039 | sample.cpumode = PERF_RECORD_MISC_USER; | ||
1038 | sample.ip = ptq->state->from_ip; | 1040 | sample.ip = ptq->state->from_ip; |
1039 | sample.pid = ptq->pid; | 1041 | sample.pid = ptq->pid; |
1040 | sample.tid = ptq->tid; | 1042 | sample.tid = ptq->tid; |
@@ -1092,6 +1094,7 @@ static int intel_pt_synth_transaction_sample(struct intel_pt_queue *ptq) | |||
1092 | if (!pt->timeless_decoding) | 1094 | if (!pt->timeless_decoding) |
1093 | sample.time = tsc_to_perf_time(ptq->timestamp, &pt->tc); | 1095 | sample.time = tsc_to_perf_time(ptq->timestamp, &pt->tc); |
1094 | 1096 | ||
1097 | sample.cpumode = PERF_RECORD_MISC_USER; | ||
1095 | sample.ip = ptq->state->from_ip; | 1098 | sample.ip = ptq->state->from_ip; |
1096 | sample.pid = ptq->pid; | 1099 | sample.pid = ptq->pid; |
1097 | sample.tid = ptq->tid; | 1100 | sample.tid = ptq->tid; |
diff --git a/tools/perf/util/jitdump.c b/tools/perf/util/jitdump.c index cd272cc21e05..ad0c0bb1fbc7 100644 --- a/tools/perf/util/jitdump.c +++ b/tools/perf/util/jitdump.c | |||
@@ -417,6 +417,7 @@ static int jit_repipe_code_load(struct jit_buf_desc *jd, union jr_entry *jr) | |||
417 | * use first address as sample address | 417 | * use first address as sample address |
418 | */ | 418 | */ |
419 | memset(&sample, 0, sizeof(sample)); | 419 | memset(&sample, 0, sizeof(sample)); |
420 | sample.cpumode = PERF_RECORD_MISC_USER; | ||
420 | sample.pid = pid; | 421 | sample.pid = pid; |
421 | sample.tid = tid; | 422 | sample.tid = tid; |
422 | sample.time = id->time; | 423 | sample.time = id->time; |
@@ -505,6 +506,7 @@ static int jit_repipe_code_move(struct jit_buf_desc *jd, union jr_entry *jr) | |||
505 | * use first address as sample address | 506 | * use first address as sample address |
506 | */ | 507 | */ |
507 | memset(&sample, 0, sizeof(sample)); | 508 | memset(&sample, 0, sizeof(sample)); |
509 | sample.cpumode = PERF_RECORD_MISC_USER; | ||
508 | sample.pid = pid; | 510 | sample.pid = pid; |
509 | sample.tid = tid; | 511 | sample.tid = tid; |
510 | sample.time = id->time; | 512 | sample.time = id->time; |
diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c index 20a257a12ea5..acbf7ff2ee6e 100644 --- a/tools/power/x86/turbostat/turbostat.c +++ b/tools/power/x86/turbostat/turbostat.c | |||
@@ -66,6 +66,8 @@ unsigned int do_slm_cstates; | |||
66 | unsigned int use_c1_residency_msr; | 66 | unsigned int use_c1_residency_msr; |
67 | unsigned int has_aperf; | 67 | unsigned int has_aperf; |
68 | unsigned int has_epb; | 68 | unsigned int has_epb; |
69 | unsigned int do_irtl_snb; | ||
70 | unsigned int do_irtl_hsw; | ||
69 | unsigned int units = 1000000; /* MHz etc */ | 71 | unsigned int units = 1000000; /* MHz etc */ |
70 | unsigned int genuine_intel; | 72 | unsigned int genuine_intel; |
71 | unsigned int has_invariant_tsc; | 73 | unsigned int has_invariant_tsc; |
@@ -187,7 +189,7 @@ struct pkg_data { | |||
187 | unsigned long long pkg_any_core_c0; | 189 | unsigned long long pkg_any_core_c0; |
188 | unsigned long long pkg_any_gfxe_c0; | 190 | unsigned long long pkg_any_gfxe_c0; |
189 | unsigned long long pkg_both_core_gfxe_c0; | 191 | unsigned long long pkg_both_core_gfxe_c0; |
190 | unsigned long long gfx_rc6_ms; | 192 | long long gfx_rc6_ms; |
191 | unsigned int gfx_mhz; | 193 | unsigned int gfx_mhz; |
192 | unsigned int package_id; | 194 | unsigned int package_id; |
193 | unsigned int energy_pkg; /* MSR_PKG_ENERGY_STATUS */ | 195 | unsigned int energy_pkg; /* MSR_PKG_ENERGY_STATUS */ |
@@ -621,8 +623,14 @@ int format_counters(struct thread_data *t, struct core_data *c, | |||
621 | outp += sprintf(outp, "%8d", p->pkg_temp_c); | 623 | outp += sprintf(outp, "%8d", p->pkg_temp_c); |
622 | 624 | ||
623 | /* GFXrc6 */ | 625 | /* GFXrc6 */ |
624 | if (do_gfx_rc6_ms) | 626 | if (do_gfx_rc6_ms) { |
625 | outp += sprintf(outp, "%8.2f", 100.0 * p->gfx_rc6_ms / 1000.0 / interval_float); | 627 | if (p->gfx_rc6_ms == -1) { /* detect counter reset */ |
628 | outp += sprintf(outp, " ***.**"); | ||
629 | } else { | ||
630 | outp += sprintf(outp, "%8.2f", | ||
631 | p->gfx_rc6_ms / 10.0 / interval_float); | ||
632 | } | ||
633 | } | ||
626 | 634 | ||
627 | /* GFXMHz */ | 635 | /* GFXMHz */ |
628 | if (do_gfx_mhz) | 636 | if (do_gfx_mhz) |
@@ -766,7 +774,12 @@ delta_package(struct pkg_data *new, struct pkg_data *old) | |||
766 | old->pc10 = new->pc10 - old->pc10; | 774 | old->pc10 = new->pc10 - old->pc10; |
767 | old->pkg_temp_c = new->pkg_temp_c; | 775 | old->pkg_temp_c = new->pkg_temp_c; |
768 | 776 | ||
769 | old->gfx_rc6_ms = new->gfx_rc6_ms - old->gfx_rc6_ms; | 777 | /* flag an error when rc6 counter resets/wraps */ |
778 | if (old->gfx_rc6_ms > new->gfx_rc6_ms) | ||
779 | old->gfx_rc6_ms = -1; | ||
780 | else | ||
781 | old->gfx_rc6_ms = new->gfx_rc6_ms - old->gfx_rc6_ms; | ||
782 | |||
770 | old->gfx_mhz = new->gfx_mhz; | 783 | old->gfx_mhz = new->gfx_mhz; |
771 | 784 | ||
772 | DELTA_WRAP32(new->energy_pkg, old->energy_pkg); | 785 | DELTA_WRAP32(new->energy_pkg, old->energy_pkg); |
@@ -1296,6 +1309,7 @@ int hsw_pkg_cstate_limits[16] = {PCL__0, PCL__2, PCL__3, PCL__6, PCL__7, PCL_7S, | |||
1296 | int slv_pkg_cstate_limits[16] = {PCL__0, PCL__1, PCLRSV, PCLRSV, PCL__4, PCLRSV, PCL__6, PCL__7, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV}; | 1309 | int slv_pkg_cstate_limits[16] = {PCL__0, PCL__1, PCLRSV, PCLRSV, PCL__4, PCLRSV, PCL__6, PCL__7, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV}; |
1297 | int amt_pkg_cstate_limits[16] = {PCL__0, PCL__1, PCL__2, PCLRSV, PCLRSV, PCLRSV, PCL__6, PCL__7, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV}; | 1310 | int amt_pkg_cstate_limits[16] = {PCL__0, PCL__1, PCL__2, PCLRSV, PCLRSV, PCLRSV, PCL__6, PCL__7, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV}; |
1298 | int phi_pkg_cstate_limits[16] = {PCL__0, PCL__2, PCL_6N, PCL_6R, PCLRSV, PCLRSV, PCLRSV, PCLUNL, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV}; | 1311 | int phi_pkg_cstate_limits[16] = {PCL__0, PCL__2, PCL_6N, PCL_6R, PCLRSV, PCLRSV, PCLRSV, PCLUNL, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV}; |
1312 | int bxt_pkg_cstate_limits[16] = {PCL__0, PCL__2, PCLUNL, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV, PCLRSV}; | ||
1299 | 1313 | ||
1300 | 1314 | ||
1301 | static void | 1315 | static void |
@@ -1579,6 +1593,47 @@ dump_config_tdp(void) | |||
1579 | fprintf(outf, " lock=%d", (unsigned int)(msr >> 31) & 1); | 1593 | fprintf(outf, " lock=%d", (unsigned int)(msr >> 31) & 1); |
1580 | fprintf(outf, ")\n"); | 1594 | fprintf(outf, ")\n"); |
1581 | } | 1595 | } |
1596 | |||
1597 | unsigned int irtl_time_units[] = {1, 32, 1024, 32768, 1048576, 33554432, 0, 0 }; | ||
1598 | |||
1599 | void print_irtl(void) | ||
1600 | { | ||
1601 | unsigned long long msr; | ||
1602 | |||
1603 | get_msr(base_cpu, MSR_PKGC3_IRTL, &msr); | ||
1604 | fprintf(outf, "cpu%d: MSR_PKGC3_IRTL: 0x%08llx (", base_cpu, msr); | ||
1605 | fprintf(outf, "%svalid, %lld ns)\n", msr & (1 << 15) ? "" : "NOT", | ||
1606 | (msr & 0x3FF) * irtl_time_units[(msr >> 10) & 0x3]); | ||
1607 | |||
1608 | get_msr(base_cpu, MSR_PKGC6_IRTL, &msr); | ||
1609 | fprintf(outf, "cpu%d: MSR_PKGC6_IRTL: 0x%08llx (", base_cpu, msr); | ||
1610 | fprintf(outf, "%svalid, %lld ns)\n", msr & (1 << 15) ? "" : "NOT", | ||
1611 | (msr & 0x3FF) * irtl_time_units[(msr >> 10) & 0x3]); | ||
1612 | |||
1613 | get_msr(base_cpu, MSR_PKGC7_IRTL, &msr); | ||
1614 | fprintf(outf, "cpu%d: MSR_PKGC7_IRTL: 0x%08llx (", base_cpu, msr); | ||
1615 | fprintf(outf, "%svalid, %lld ns)\n", msr & (1 << 15) ? "" : "NOT", | ||
1616 | (msr & 0x3FF) * irtl_time_units[(msr >> 10) & 0x3]); | ||
1617 | |||
1618 | if (!do_irtl_hsw) | ||
1619 | return; | ||
1620 | |||
1621 | get_msr(base_cpu, MSR_PKGC8_IRTL, &msr); | ||
1622 | fprintf(outf, "cpu%d: MSR_PKGC8_IRTL: 0x%08llx (", base_cpu, msr); | ||
1623 | fprintf(outf, "%svalid, %lld ns)\n", msr & (1 << 15) ? "" : "NOT", | ||
1624 | (msr & 0x3FF) * irtl_time_units[(msr >> 10) & 0x3]); | ||
1625 | |||
1626 | get_msr(base_cpu, MSR_PKGC9_IRTL, &msr); | ||
1627 | fprintf(outf, "cpu%d: MSR_PKGC9_IRTL: 0x%08llx (", base_cpu, msr); | ||
1628 | fprintf(outf, "%svalid, %lld ns)\n", msr & (1 << 15) ? "" : "NOT", | ||
1629 | (msr & 0x3FF) * irtl_time_units[(msr >> 10) & 0x3]); | ||
1630 | |||
1631 | get_msr(base_cpu, MSR_PKGC10_IRTL, &msr); | ||
1632 | fprintf(outf, "cpu%d: MSR_PKGC10_IRTL: 0x%08llx (", base_cpu, msr); | ||
1633 | fprintf(outf, "%svalid, %lld ns)\n", msr & (1 << 15) ? "" : "NOT", | ||
1634 | (msr & 0x3FF) * irtl_time_units[(msr >> 10) & 0x3]); | ||
1635 | |||
1636 | } | ||
1582 | void free_fd_percpu(void) | 1637 | void free_fd_percpu(void) |
1583 | { | 1638 | { |
1584 | int i; | 1639 | int i; |
@@ -2144,6 +2199,9 @@ int probe_nhm_msrs(unsigned int family, unsigned int model) | |||
2144 | case 0x56: /* BDX-DE */ | 2199 | case 0x56: /* BDX-DE */ |
2145 | case 0x4E: /* SKL */ | 2200 | case 0x4E: /* SKL */ |
2146 | case 0x5E: /* SKL */ | 2201 | case 0x5E: /* SKL */ |
2202 | case 0x8E: /* KBL */ | ||
2203 | case 0x9E: /* KBL */ | ||
2204 | case 0x55: /* SKX */ | ||
2147 | pkg_cstate_limits = hsw_pkg_cstate_limits; | 2205 | pkg_cstate_limits = hsw_pkg_cstate_limits; |
2148 | break; | 2206 | break; |
2149 | case 0x37: /* BYT */ | 2207 | case 0x37: /* BYT */ |
@@ -2156,6 +2214,9 @@ int probe_nhm_msrs(unsigned int family, unsigned int model) | |||
2156 | case 0x57: /* PHI */ | 2214 | case 0x57: /* PHI */ |
2157 | pkg_cstate_limits = phi_pkg_cstate_limits; | 2215 | pkg_cstate_limits = phi_pkg_cstate_limits; |
2158 | break; | 2216 | break; |
2217 | case 0x5C: /* BXT */ | ||
2218 | pkg_cstate_limits = bxt_pkg_cstate_limits; | ||
2219 | break; | ||
2159 | default: | 2220 | default: |
2160 | return 0; | 2221 | return 0; |
2161 | } | 2222 | } |
@@ -2248,6 +2309,9 @@ int has_config_tdp(unsigned int family, unsigned int model) | |||
2248 | case 0x56: /* BDX-DE */ | 2309 | case 0x56: /* BDX-DE */ |
2249 | case 0x4E: /* SKL */ | 2310 | case 0x4E: /* SKL */ |
2250 | case 0x5E: /* SKL */ | 2311 | case 0x5E: /* SKL */ |
2312 | case 0x8E: /* KBL */ | ||
2313 | case 0x9E: /* KBL */ | ||
2314 | case 0x55: /* SKX */ | ||
2251 | 2315 | ||
2252 | case 0x57: /* Knights Landing */ | 2316 | case 0x57: /* Knights Landing */ |
2253 | return 1; | 2317 | return 1; |
@@ -2585,13 +2649,19 @@ void rapl_probe(unsigned int family, unsigned int model) | |||
2585 | case 0x47: /* BDW */ | 2649 | case 0x47: /* BDW */ |
2586 | do_rapl = RAPL_PKG | RAPL_CORES | RAPL_CORE_POLICY | RAPL_GFX | RAPL_PKG_POWER_INFO; | 2650 | do_rapl = RAPL_PKG | RAPL_CORES | RAPL_CORE_POLICY | RAPL_GFX | RAPL_PKG_POWER_INFO; |
2587 | break; | 2651 | break; |
2652 | case 0x5C: /* BXT */ | ||
2653 | do_rapl = RAPL_PKG | RAPL_PKG_POWER_INFO; | ||
2654 | break; | ||
2588 | case 0x4E: /* SKL */ | 2655 | case 0x4E: /* SKL */ |
2589 | case 0x5E: /* SKL */ | 2656 | case 0x5E: /* SKL */ |
2657 | case 0x8E: /* KBL */ | ||
2658 | case 0x9E: /* KBL */ | ||
2590 | do_rapl = RAPL_PKG | RAPL_DRAM | RAPL_DRAM_PERF_STATUS | RAPL_PKG_PERF_STATUS | RAPL_PKG_POWER_INFO; | 2659 | do_rapl = RAPL_PKG | RAPL_DRAM | RAPL_DRAM_PERF_STATUS | RAPL_PKG_PERF_STATUS | RAPL_PKG_POWER_INFO; |
2591 | break; | 2660 | break; |
2592 | case 0x3F: /* HSX */ | 2661 | case 0x3F: /* HSX */ |
2593 | case 0x4F: /* BDX */ | 2662 | case 0x4F: /* BDX */ |
2594 | case 0x56: /* BDX-DE */ | 2663 | case 0x56: /* BDX-DE */ |
2664 | case 0x55: /* SKX */ | ||
2595 | case 0x57: /* KNL */ | 2665 | case 0x57: /* KNL */ |
2596 | do_rapl = RAPL_PKG | RAPL_DRAM | RAPL_DRAM_POWER_INFO | RAPL_DRAM_PERF_STATUS | RAPL_PKG_PERF_STATUS | RAPL_PKG_POWER_INFO; | 2666 | do_rapl = RAPL_PKG | RAPL_DRAM | RAPL_DRAM_POWER_INFO | RAPL_DRAM_PERF_STATUS | RAPL_PKG_PERF_STATUS | RAPL_PKG_POWER_INFO; |
2597 | break; | 2667 | break; |
@@ -2871,6 +2941,10 @@ int has_snb_msrs(unsigned int family, unsigned int model) | |||
2871 | case 0x56: /* BDX-DE */ | 2941 | case 0x56: /* BDX-DE */ |
2872 | case 0x4E: /* SKL */ | 2942 | case 0x4E: /* SKL */ |
2873 | case 0x5E: /* SKL */ | 2943 | case 0x5E: /* SKL */ |
2944 | case 0x8E: /* KBL */ | ||
2945 | case 0x9E: /* KBL */ | ||
2946 | case 0x55: /* SKX */ | ||
2947 | case 0x5C: /* BXT */ | ||
2874 | return 1; | 2948 | return 1; |
2875 | } | 2949 | } |
2876 | return 0; | 2950 | return 0; |
@@ -2879,9 +2953,14 @@ int has_snb_msrs(unsigned int family, unsigned int model) | |||
2879 | /* | 2953 | /* |
2880 | * HSW adds support for additional MSRs: | 2954 | * HSW adds support for additional MSRs: |
2881 | * | 2955 | * |
2882 | * MSR_PKG_C8_RESIDENCY 0x00000630 | 2956 | * MSR_PKG_C8_RESIDENCY 0x00000630 |
2883 | * MSR_PKG_C9_RESIDENCY 0x00000631 | 2957 | * MSR_PKG_C9_RESIDENCY 0x00000631 |
2884 | * MSR_PKG_C10_RESIDENCY 0x00000632 | 2958 | * MSR_PKG_C10_RESIDENCY 0x00000632 |
2959 | * | ||
2960 | * MSR_PKGC8_IRTL 0x00000633 | ||
2961 | * MSR_PKGC9_IRTL 0x00000634 | ||
2962 | * MSR_PKGC10_IRTL 0x00000635 | ||
2963 | * | ||
2885 | */ | 2964 | */ |
2886 | int has_hsw_msrs(unsigned int family, unsigned int model) | 2965 | int has_hsw_msrs(unsigned int family, unsigned int model) |
2887 | { | 2966 | { |
@@ -2893,6 +2972,9 @@ int has_hsw_msrs(unsigned int family, unsigned int model) | |||
2893 | case 0x3D: /* BDW */ | 2972 | case 0x3D: /* BDW */ |
2894 | case 0x4E: /* SKL */ | 2973 | case 0x4E: /* SKL */ |
2895 | case 0x5E: /* SKL */ | 2974 | case 0x5E: /* SKL */ |
2975 | case 0x8E: /* KBL */ | ||
2976 | case 0x9E: /* KBL */ | ||
2977 | case 0x5C: /* BXT */ | ||
2896 | return 1; | 2978 | return 1; |
2897 | } | 2979 | } |
2898 | return 0; | 2980 | return 0; |
@@ -2914,6 +2996,8 @@ int has_skl_msrs(unsigned int family, unsigned int model) | |||
2914 | switch (model) { | 2996 | switch (model) { |
2915 | case 0x4E: /* SKL */ | 2997 | case 0x4E: /* SKL */ |
2916 | case 0x5E: /* SKL */ | 2998 | case 0x5E: /* SKL */ |
2999 | case 0x8E: /* KBL */ | ||
3000 | case 0x9E: /* KBL */ | ||
2917 | return 1; | 3001 | return 1; |
2918 | } | 3002 | } |
2919 | return 0; | 3003 | return 0; |
@@ -3187,7 +3271,7 @@ void process_cpuid() | |||
3187 | if (debug) | 3271 | if (debug) |
3188 | decode_misc_enable_msr(); | 3272 | decode_misc_enable_msr(); |
3189 | 3273 | ||
3190 | if (max_level >= 0x7) { | 3274 | if (max_level >= 0x7 && debug) { |
3191 | int has_sgx; | 3275 | int has_sgx; |
3192 | 3276 | ||
3193 | ecx = 0; | 3277 | ecx = 0; |
@@ -3221,7 +3305,15 @@ void process_cpuid() | |||
3221 | switch(model) { | 3305 | switch(model) { |
3222 | case 0x4E: /* SKL */ | 3306 | case 0x4E: /* SKL */ |
3223 | case 0x5E: /* SKL */ | 3307 | case 0x5E: /* SKL */ |
3224 | crystal_hz = 24000000; /* 24 MHz */ | 3308 | case 0x8E: /* KBL */ |
3309 | case 0x9E: /* KBL */ | ||
3310 | crystal_hz = 24000000; /* 24.0 MHz */ | ||
3311 | break; | ||
3312 | case 0x55: /* SKX */ | ||
3313 | crystal_hz = 25000000; /* 25.0 MHz */ | ||
3314 | break; | ||
3315 | case 0x5C: /* BXT */ | ||
3316 | crystal_hz = 19200000; /* 19.2 MHz */ | ||
3225 | break; | 3317 | break; |
3226 | default: | 3318 | default: |
3227 | crystal_hz = 0; | 3319 | crystal_hz = 0; |
@@ -3254,11 +3346,13 @@ void process_cpuid() | |||
3254 | 3346 | ||
3255 | do_nhm_platform_info = do_nhm_cstates = do_smi = probe_nhm_msrs(family, model); | 3347 | do_nhm_platform_info = do_nhm_cstates = do_smi = probe_nhm_msrs(family, model); |
3256 | do_snb_cstates = has_snb_msrs(family, model); | 3348 | do_snb_cstates = has_snb_msrs(family, model); |
3349 | do_irtl_snb = has_snb_msrs(family, model); | ||
3257 | do_pc2 = do_snb_cstates && (pkg_cstate_limit >= PCL__2); | 3350 | do_pc2 = do_snb_cstates && (pkg_cstate_limit >= PCL__2); |
3258 | do_pc3 = (pkg_cstate_limit >= PCL__3); | 3351 | do_pc3 = (pkg_cstate_limit >= PCL__3); |
3259 | do_pc6 = (pkg_cstate_limit >= PCL__6); | 3352 | do_pc6 = (pkg_cstate_limit >= PCL__6); |
3260 | do_pc7 = do_snb_cstates && (pkg_cstate_limit >= PCL__7); | 3353 | do_pc7 = do_snb_cstates && (pkg_cstate_limit >= PCL__7); |
3261 | do_c8_c9_c10 = has_hsw_msrs(family, model); | 3354 | do_c8_c9_c10 = has_hsw_msrs(family, model); |
3355 | do_irtl_hsw = has_hsw_msrs(family, model); | ||
3262 | do_skl_residency = has_skl_msrs(family, model); | 3356 | do_skl_residency = has_skl_msrs(family, model); |
3263 | do_slm_cstates = is_slm(family, model); | 3357 | do_slm_cstates = is_slm(family, model); |
3264 | do_knl_cstates = is_knl(family, model); | 3358 | do_knl_cstates = is_knl(family, model); |
@@ -3564,6 +3658,9 @@ void turbostat_init() | |||
3564 | 3658 | ||
3565 | if (debug) | 3659 | if (debug) |
3566 | for_all_cpus(print_thermal, ODD_COUNTERS); | 3660 | for_all_cpus(print_thermal, ODD_COUNTERS); |
3661 | |||
3662 | if (debug && do_irtl_snb) | ||
3663 | print_irtl(); | ||
3567 | } | 3664 | } |
3568 | 3665 | ||
3569 | int fork_it(char **argv) | 3666 | int fork_it(char **argv) |
@@ -3629,7 +3726,7 @@ int get_and_dump_counters(void) | |||
3629 | } | 3726 | } |
3630 | 3727 | ||
3631 | void print_version() { | 3728 | void print_version() { |
3632 | fprintf(outf, "turbostat version 4.11 27 Feb 2016" | 3729 | fprintf(outf, "turbostat version 4.12 5 Apr 2016" |
3633 | " - Len Brown <lenb@kernel.org>\n"); | 3730 | " - Len Brown <lenb@kernel.org>\n"); |
3634 | } | 3731 | } |
3635 | 3732 | ||
diff --git a/tools/testing/selftests/seccomp/seccomp_bpf.c b/tools/testing/selftests/seccomp/seccomp_bpf.c index b9453b838162..150829dd7998 100644 --- a/tools/testing/selftests/seccomp/seccomp_bpf.c +++ b/tools/testing/selftests/seccomp/seccomp_bpf.c | |||
@@ -1497,15 +1497,15 @@ TEST_F(TRACE_syscall, syscall_dropped) | |||
1497 | #define SECCOMP_SET_MODE_FILTER 1 | 1497 | #define SECCOMP_SET_MODE_FILTER 1 |
1498 | #endif | 1498 | #endif |
1499 | 1499 | ||
1500 | #ifndef SECCOMP_FLAG_FILTER_TSYNC | 1500 | #ifndef SECCOMP_FILTER_FLAG_TSYNC |
1501 | #define SECCOMP_FLAG_FILTER_TSYNC 1 | 1501 | #define SECCOMP_FILTER_FLAG_TSYNC 1 |
1502 | #endif | 1502 | #endif |
1503 | 1503 | ||
1504 | #ifndef seccomp | 1504 | #ifndef seccomp |
1505 | int seccomp(unsigned int op, unsigned int flags, struct sock_fprog *filter) | 1505 | int seccomp(unsigned int op, unsigned int flags, void *args) |
1506 | { | 1506 | { |
1507 | errno = 0; | 1507 | errno = 0; |
1508 | return syscall(__NR_seccomp, op, flags, filter); | 1508 | return syscall(__NR_seccomp, op, flags, args); |
1509 | } | 1509 | } |
1510 | #endif | 1510 | #endif |
1511 | 1511 | ||
@@ -1613,7 +1613,7 @@ TEST(TSYNC_first) | |||
1613 | TH_LOG("Kernel does not support PR_SET_NO_NEW_PRIVS!"); | 1613 | TH_LOG("Kernel does not support PR_SET_NO_NEW_PRIVS!"); |
1614 | } | 1614 | } |
1615 | 1615 | ||
1616 | ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FLAG_FILTER_TSYNC, | 1616 | ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC, |
1617 | &prog); | 1617 | &prog); |
1618 | ASSERT_NE(ENOSYS, errno) { | 1618 | ASSERT_NE(ENOSYS, errno) { |
1619 | TH_LOG("Kernel does not support seccomp syscall!"); | 1619 | TH_LOG("Kernel does not support seccomp syscall!"); |
@@ -1831,7 +1831,7 @@ TEST_F(TSYNC, two_siblings_with_ancestor) | |||
1831 | self->sibling_count++; | 1831 | self->sibling_count++; |
1832 | } | 1832 | } |
1833 | 1833 | ||
1834 | ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FLAG_FILTER_TSYNC, | 1834 | ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC, |
1835 | &self->apply_prog); | 1835 | &self->apply_prog); |
1836 | ASSERT_EQ(0, ret) { | 1836 | ASSERT_EQ(0, ret) { |
1837 | TH_LOG("Could install filter on all threads!"); | 1837 | TH_LOG("Could install filter on all threads!"); |
@@ -1892,7 +1892,7 @@ TEST_F(TSYNC, two_siblings_with_no_filter) | |||
1892 | TH_LOG("Kernel does not support PR_SET_NO_NEW_PRIVS!"); | 1892 | TH_LOG("Kernel does not support PR_SET_NO_NEW_PRIVS!"); |
1893 | } | 1893 | } |
1894 | 1894 | ||
1895 | ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FLAG_FILTER_TSYNC, | 1895 | ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC, |
1896 | &self->apply_prog); | 1896 | &self->apply_prog); |
1897 | ASSERT_NE(ENOSYS, errno) { | 1897 | ASSERT_NE(ENOSYS, errno) { |
1898 | TH_LOG("Kernel does not support seccomp syscall!"); | 1898 | TH_LOG("Kernel does not support seccomp syscall!"); |
@@ -1940,7 +1940,7 @@ TEST_F(TSYNC, two_siblings_with_one_divergence) | |||
1940 | self->sibling_count++; | 1940 | self->sibling_count++; |
1941 | } | 1941 | } |
1942 | 1942 | ||
1943 | ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FLAG_FILTER_TSYNC, | 1943 | ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC, |
1944 | &self->apply_prog); | 1944 | &self->apply_prog); |
1945 | ASSERT_EQ(self->sibling[0].system_tid, ret) { | 1945 | ASSERT_EQ(self->sibling[0].system_tid, ret) { |
1946 | TH_LOG("Did not fail on diverged sibling."); | 1946 | TH_LOG("Did not fail on diverged sibling."); |
@@ -1992,7 +1992,7 @@ TEST_F(TSYNC, two_siblings_not_under_filter) | |||
1992 | TH_LOG("Kernel does not support SECCOMP_SET_MODE_FILTER!"); | 1992 | TH_LOG("Kernel does not support SECCOMP_SET_MODE_FILTER!"); |
1993 | } | 1993 | } |
1994 | 1994 | ||
1995 | ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FLAG_FILTER_TSYNC, | 1995 | ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC, |
1996 | &self->apply_prog); | 1996 | &self->apply_prog); |
1997 | ASSERT_EQ(ret, self->sibling[0].system_tid) { | 1997 | ASSERT_EQ(ret, self->sibling[0].system_tid) { |
1998 | TH_LOG("Did not fail on diverged sibling."); | 1998 | TH_LOG("Did not fail on diverged sibling."); |
@@ -2021,7 +2021,7 @@ TEST_F(TSYNC, two_siblings_not_under_filter) | |||
2021 | /* Switch to the remaining sibling */ | 2021 | /* Switch to the remaining sibling */ |
2022 | sib = !sib; | 2022 | sib = !sib; |
2023 | 2023 | ||
2024 | ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FLAG_FILTER_TSYNC, | 2024 | ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC, |
2025 | &self->apply_prog); | 2025 | &self->apply_prog); |
2026 | ASSERT_EQ(0, ret) { | 2026 | ASSERT_EQ(0, ret) { |
2027 | TH_LOG("Expected the remaining sibling to sync"); | 2027 | TH_LOG("Expected the remaining sibling to sync"); |
@@ -2044,7 +2044,7 @@ TEST_F(TSYNC, two_siblings_not_under_filter) | |||
2044 | while (!kill(self->sibling[sib].system_tid, 0)) | 2044 | while (!kill(self->sibling[sib].system_tid, 0)) |
2045 | sleep(0.1); | 2045 | sleep(0.1); |
2046 | 2046 | ||
2047 | ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FLAG_FILTER_TSYNC, | 2047 | ret = seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC, |
2048 | &self->apply_prog); | 2048 | &self->apply_prog); |
2049 | ASSERT_EQ(0, ret); /* just us chickens */ | 2049 | ASSERT_EQ(0, ret); /* just us chickens */ |
2050 | } | 2050 | } |