1. 24 Apr, 2018 2 commits
  2. 23 Apr, 2018 1 commit
  3. 20 Apr, 2018 2 commits
  4. 19 Apr, 2018 4 commits
  5. 18 Apr, 2018 3 commits
  6. 17 Apr, 2018 3 commits
    • Cong Wang's avatar
      Use better kprobes for runqlat.py · e26019fc
      Cong Wang authored
      e26019fc
    • Yonghong Song's avatar
      fix profile.py with latest net-next · b5fcb51e
      Yonghong Song authored
      The profile.py tries to validate whether the "ip" from the
      context register is a kernel ip address or not by comparing
      "ip" to the kernel PAGE_OFFSET.
      
      On non-x86_64 architectures, PAGE_OFFSET can be directly used.
      On x86_64 architecture, things become more complex.
      With 4.17 (latest linus tree), __PAGE_OFFSET_BASE is gone
      and replaced with __PAGE_OFFSET_BASE_L5 and __PAGE_OFFSET_BASE_L4
      for 5 and 4 level page table respectively.
      Running profile.py will have the following error:
          /virtual/main.c:41:18: error: use of undeclared identifier '__PAGE_OFFSET_BASE'
                  if (ip > __PAGE_OFFSET_BASE) {
                           ^
          1 error generated.
      
      So, for 4.17, __PAGE_OFFSET_BASE_{L4, L5} should be used.
      For 4.16 and some old kernels (e.g., 4.11), which I did not
      check earlier one, __PAGE_OFFSET_BASE should be used.
      For even older kernels like 4.6, PAGE_OFFSET should be used.
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      b5fcb51e
    • 4ast's avatar
      Merge pull request #1686 from iovisor/yhs_dev · f4e1c334
      4ast authored
      fix python3 py_test_histogram failure
      f4e1c334
  7. 16 Apr, 2018 3 commits
    • yonghong-song's avatar
      Merge pull request #1682 from hMcLauchlan/inject-qol · 22ea950f
      yonghong-song authored
      QoL improvements for inject
      22ea950f
    • Yonghong Song's avatar
      fix python3 py_test_histogram failure · 9357f35c
      Yonghong Song authored
      With python3 (specifically 3.6.3), py_test_histogram failed with:
        Traceback (most recent call last):
        File "./test_histogram.py", line 106, in test_multiple_key
          bucket_sort_fn=bucket_sort)
        File "/usr/lib/python3.6/site-packages/bcc/table.py", line 318, in print_log2_hist
          buckets = bucket_sort_fn(buckets)
        File "./test_histogram.py", line 98, in bucket_sort
          buckets.sort()
        AttributeError: 'dict_keys' object has no attribute 'sort'
      
      The reason is for a dictionary tmp, tmp.keys() returns an object
      of keys (a list) instead of the list itself for python3.
      Using list(tmp.keys()) seems working for both python2 and python3.
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      9357f35c
    • 4ast's avatar
      Merge pull request #1687 from iovisor/yhs_dev2 · 6f53be35
      4ast authored
      fix test_libbcc failure with 4.15.
      6f53be35
  8. 15 Apr, 2018 1 commit
    • Yonghong Song's avatar
      fix test_libbcc failure with 4.15. · c40b5fd6
      Yonghong Song authored
      The test sleeps one second and expects the perf counter to
      be one second or more. But in reality (probably esp. in VM
      which I conducted my experiments), I mostly saw counters
      between 0.9s - 1s and occasionally 0.8s - 0.9s.
      
      So be a little bit conservative here when checking the
      result.
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      c40b5fd6
  9. 13 Apr, 2018 4 commits
  10. 11 Apr, 2018 2 commits
  11. 10 Apr, 2018 4 commits
  12. 09 Apr, 2018 3 commits
    • yonghong-song's avatar
      Merge pull request #1670 from joelagnel/submit-fix-1628 · 5d23500a
      yonghong-song authored
      bcc/syms: Fix shared library symbol lookup
      5d23500a
    • Joel Fernandes's avatar
      bcc/syms: Fix shared library symbol lookup · 5a1106c6
      Joel Fernandes authored
      Shared library addresses needed to be mapped what the address is expected in the
      symbol table. The address offset of the running shared library may be different from
      the one in the SO binary file. So we have to map it correctly in order for symbol
      look up to work.
      
      Often the address and file offset are the same so it works, however in Android this
      is not the case a lot of times. Fix the issue by adjusting the offset with the
      file offset from the ELF.
      
      Test: stackcount 'sys_futex' -v
      
      Before patch:
        ffffff800814bc14 sys_futex
        775d8e0db0       syscall
        775e149fe8       [unknown]
        775e14a598       [unknown]
        775e16a9e4       android::Parcel::validateReadData(unsigned long) const
        775e05d738       android::Thread::_threadLoop(void*)
        775d942470       __pthread_start(void*)
        775d8e54f8       __start_thread
          Binder:13353_5 [13353]
      
      After patch:
        ffffff800814bc14 sys_futex
        78ba2e1db0       syscall
        78b97d4fe8       android::IPCThreadState::getAndExecuteCommand()
        78b97d5598       android::IPCThreadState::joinThreadPool(bool)
        78b97f59e4       [unknown]
        78b8dda738       android::Thread::_threadLoop(void*)
        78ba4ffbd0       android::AndroidRuntime::javaThreadShell(void*)
        78ba343470       __pthread_start(void*)
        78ba2e64f8       __start_thread
          Binder:14001_8 [14001]
      
      Matches Perf output:
              ffffff800814bc14 sys_futex ([kernel.kallsyms])
                         1edb0 syscall (/system/lib64/libc.so)
                         45fe8 android::IPCThreadState::getAndExecuteCommand (/system/lib64/libbinder.so)
                         46598 android::IPCThreadState::joinThreadPool (/system/lib64/libbinder.so)
                         669e4 [unknown] (/system/lib64/libbinder.so)
                         10738 android::Thread::_threadLoop (/system/lib64/libutils.so)
                         7ebd0 android::AndroidRuntime::javaThreadShell (/system/lib64/libandroid_runtime.so)
                         80470 __pthread_start (/system/lib64/libc.so)
                         234f8 __start_thread (/system/lib64/libc.so)
      
      Fixes: https://github.com/iovisor/bcc/issues/1628Signed-off-by: default avatarJoel Fernandes <joelaf@google.com>
      Signed-off-by: default avatarJoel Fernandes <joel@linuxinternals.org>
      5a1106c6
    • yonghong-song's avatar
      Merge pull request #1672 from brtmr/master · cbb16114
      yonghong-song authored
      Added -q option to execsnoop to quote individual arguments. 
      cbb16114
  13. 08 Apr, 2018 3 commits
  14. 06 Apr, 2018 2 commits
    • 4ast's avatar
      Merge pull request #1669 from iovisor/yhs_dev · 18d3814c
      4ast authored
      fix compiler warning
      18d3814c
    • Yonghong Song's avatar
      fix compiler warning · 61130a16
      Yonghong Song authored
      The patch fixed the following compiler warnings:
      
        /home/yhs/work/bcc/src/cc/perf_reader.c: In function ‘read_data_head’:
        /home/yhs/work/bcc/src/cc/perf_reader.c:149:3: warning: dereferencing type-punned pointer will break strict-alias
        ing rules [-Wstrict-aliasing]
           uint64_t data_head = *((volatile uint64_t *)&perf_header->data_head);
           ^
        /home/yhs/work/bcc/src/cc/perf_reader.c: In function ‘read_data_head’:
        /home/yhs/work/bcc/src/cc/perf_reader.c:149:3: warning: dereferencing type-punned pointer will break strict-alias
        ing rules [-Wstrict-aliasing]
           uint64_t data_head = *((volatile uint64_t *)&perf_header->data_head);
           ^
      
      Declaring perf_header as volatile type will force its member read from memory,
      hence avoiding a forced type conversion.
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      61130a16
  15. 05 Apr, 2018 3 commits