Looks like its due to sign extension when copied from perf_event_read_local to BPF userspace.
On Mon, Aug 29, 2016 at 5:12 PM, riya khanna <[email protected]> wrote: > Hi, > > I'm running tests/python/test_perf_event.py. I changed the following > to print out 'cpu cycles' value and increased the number of times > 'getuid()' syscall is executed: > > diff --git a/tests/python/test_perf_event.py b/tests/python/test_perf_event.py > index 224faff..bd9e268 100755 > --- a/tests/python/test_perf_event.py > +++ b/tests/python/test_perf_event.py > @@ -18,12 +18,14 @@ BPF_HISTOGRAM(dist); > int kprobe__sys_getuid(void *ctx) { > u32 cpu = bpf_get_smp_processor_id(); > u64 val = cnt1.perf_read(cpu); > + bpf_trace_printk("entry: cycls: %llu\\n", val); > prev.update(&cpu, &val); > return 0; > } > int kretprobe__sys_getuid(void *ctx) { > u32 cpu = bpf_get_smp_processor_id(); > u64 val = cnt1.perf_read(cpu); > + bpf_trace_printk("exit: cycls: %llu\\n", val); > u64 *prevp = prev.lookup(&cpu); > if (prevp) > dist.increment(bpf_log2l(val - *prevp)); > @@ -39,7 +41,7 @@ int kretprobe__sys_getuid(void *ctx) { > if ctypes.get_errno() == 2: > raise self.skipTest("hardware events unsupported") > raise > - for i in range(0, 100): > + for i in range(0, 10000000): > os.getuid() > b["dist"].print_log2_hist() > > > With this change, I sometimes see very high value for 'CPU cycles' > counter (see output below) > > Is this expected? Please let me know. Thanks! > > I've already disabled NMI by doing sudo sh -c "echo 0 > > /proc/sys/kernel/nmi_watchdog" > > sudo-8580 [006] d... 10746.773075: : entry: cycls: 1874922986 > sudo-8580 [006] d... 10746.773092: : exit: cycls: 1874922986 > > sudo-8580 [001] d... 10746.778428: : entry: cycls: 144504920 > sudo-8580 [001] d... 10746.778459: : exit: cycls: 144504920 > > sudo-8580 [001] d... 10746.778588: : entry: cycls: 144597669 > sudo-8580 [001] d... 10746.778598: : exit: cycls: 144597669 > > sh-8581 [007] d... 10746.779968: : entry: cycls: > 18446744071909310443 > sh-8581 [007] d... 10746.779981: : exit: cycls: > 18446744071909310443 > > sudo-8580 [000] d... 10746.780445: : entry: cycls: > 18446744072592498664 > sudo-8580 [000] d... 10746.780459: : exit: cycls: > 18446744072592498664 > > sshd-8679 [001] d... 10749.599000: : entry: cycls: 173580086 > sshd-8679 [001] d... 10749.599017: : exit: cycls: 173580086 > > sshd-8679 [001] d... 10749.641906: : entry: cycls: 230568964 > sshd-8679 [001] d... 10749.641916: : exit: cycls: 230568964 > > sshd-8679 [001] d... 10749.641921: : entry: cycls: 230571582 > sshd-8679 [001] d... 10749.641922: : exit: cycls: 230571582 > > sshd-8679 [001] d... 10749.641926: : entry: cycls: 230573602 > sshd-8679 [001] d... 10749.641927: : exit: cycls: 230573602 > > sshd-8679 [001] d... 10749.641930: : entry: cycls: 230575185 > sshd-8679 [001] d... 10749.641931: : exit: cycls: 230575185 > > sshd-8679 [001] d... 10749.642585: : entry: cycls: 231016394 > sshd-8679 [001] d... 10749.642594: : exit: cycls: 231016394 > > sshd-8679 [001] d... 10749.643903: : entry: cycls: 232919009 > sshd-8679 [001] d... 10749.643911: : exit: cycls: 232919009 > > sshd-8679 [001] d... 10749.644015: : entry: cycls: 233038255 > sshd-8679 [001] d... 10749.644022: : exit: cycls: 233038255 > > sshd-8679 [001] d... 10749.644660: : entry: cycls: 233943332 > sshd-8679 [001] d... 10749.644667: : exit: cycls: 233943332 > > sshd-8680 [007] d... 10749.645712: : entry: cycls: > 18446744071924982598 > sshd-8680 [007] d... 10749.645726: : exit: cycls: > 18446744071924982598 > > sshd-8680 [007] d... 10749.645759: : entry: cycls: > 18446744071924986843 > sshd-8680 [007] d... 10749.645761: : exit: cycls: > 18446744071924986843 _______________________________________________ iovisor-dev mailing list [email protected] https://lists.iovisor.org/mailman/listinfo/iovisor-dev
