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

Reply via email to