An error occurred fetching the project authors.
  1. 16 Jan, 2019 1 commit
  2. 03 Jan, 2019 1 commit
  3. 19 Dec, 2018 1 commit
  4. 09 Oct, 2018 1 commit
    • jeromemarchand's avatar
      Bytes/string encoding (#2004) · b96ebcd2
      jeromemarchand authored
      * tools: uses 'replace' error handler by default in decode()
      
      Tools might encouter characters from non utf-8 charset (e.g. a file
      name). When this happen, it's better to replace the unexpected
      character by a question mark than crash the tool when all we do is
      to print the string.
      
      * tools: fix a bytes/string issue in attach_perf_event()
      b96ebcd2
  5. 13 Jun, 2018 1 commit
    • yonghong-song's avatar
      generate indirect parameter assignment if arch uses syscall wrapper (#1816) · 2da34267
      yonghong-song authored
      Fix issue #1802.
      
      On x64, the following commit (in 4.17) changed the raw parameter passed to
      the syscall entry function from a list of parameters supplied in user space
      to a single `pt_regs *` parameter. Also in 4.17, x64 syscall entry function
      is changed from `sys_<name>` to `__x64_sys_<name>`.
      
      ```
      commit fa697140f9a20119a9ec8fd7460cc4314fbdaff3
      Author: Dominik Brodowski <linux@dominikbrodowski.net>
      Date:   Thu Apr 5 11:53:02 2018 +0200
      
          syscalls/x86: Use 'struct pt_regs' based syscall calling convention for 64-bit syscalls
      
          Let's make use of ARCH_HAS_SYSCALL_WRAPPER=y on pure 64-bit x86-64 systems:
      
          Each syscall defines a stub which takes struct pt_regs as its only
          argument. It decodes just those parameters it needs, e.g:
      
                  asmlinkage long sys_xyzzy(const struct pt_regs *regs)
                  {
                          return SyS_xyzzy(regs->di, regs->si, regs->dx);
                  }
      
          This approach avoids leaking random user-provided register content down
          the call chain.
      
          ...
      ```
      
      In bcc, we support kprobe function signatures in the bpf program.
      The rewriter will automatically generate proper assignment to
      these parameters. With the above function signature change, the
      original method does not work any more.
      
      This patch enhanced rewriter to generate two version codes guarded
      with CONFIG_ARCH_HAS_SYSCALL_WRAPPER. But we need to identify
      whether a function will be attached to syscall entry function
      or not during prog load time at which time the program has not
      attached to any event.
      
      The prefix `kprobe__` is used for kprobe autoload, we can use
      `kprobe____x64_sys_` as the prefix to identify x64 syscall entry
      functions. To support other architecture or not-autoloading program,
      the prefix `syscall__` is introduced to signal it is a syscall
      entry function.
      
      trace.py and other tools which uses kprobe syscall entry functions
      are also modified with the new interface so that they can
      work properly with 4.17.
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      2da34267
  6. 25 Apr, 2018 1 commit
  7. 02 Mar, 2018 1 commit
  8. 02 Feb, 2018 1 commit
  9. 05 Oct, 2017 1 commit
    • Sandipan Das's avatar
      Fix 'tools/statsnoop' from failing to attach kprobes · 16523a38
      Sandipan Das authored
      This fixes 'tools/statsnoop' from failing to attach probes
      when the expected entry point for a system call cannot be
      found. This script uses the 'stat', 'statfs' and 'newstat'
      system calls, all of which must be implemented to be POSIX
      compliant. However, the names of the actual entry points
      for their respective implementations in the kernel might
      vary across architectures. For example, a powerpc64 kernel
      does not define 'sys_stat' but still provides the 'stat'
      system call via 'sys_newstat'. This causes the script to
      fail if it tries to attach a probe at 'sys_stat'. We avoid
      this by performing some extra checks to see if these entry
      points exist.
      Signed-off-by: default avatarSandipan Das <sandipan@linux.vnet.ibm.com>
      16523a38
  10. 26 Mar, 2017 1 commit
    • Rafael F's avatar
      Python 3 compatibility fixes around string handling (#986) · 78948e4a
      Rafael F authored
      This fixes the bcc module and all the affected tools for issues related to string handling in Python 3. Specifically, when passing Python strings to C libraries they are encoded as ASCII, and when constructing Python strings from C strings, they are decoded first.
      78948e4a
  11. 27 Feb, 2017 1 commit
    • Mark Drayton's avatar
      Make perf ring buffer size configurable · 5f5687e4
      Mark Drayton authored
      As discussed in #966, this PR makes the size of the ring buffer used to send
      data to userspace configurable. It changes the Python, Lua and C++ APIs to
      expose this knob.
      
      It also defaults the buffer size to a larger value (64 pages per CPU, an 8x
      increase) for several tools which produce a lot of output, as well as making it
      configurable in `trace` via a `-b` flag.
      5f5687e4
  12. 11 Jan, 2017 1 commit
  13. 05 May, 2016 1 commit
  14. 18 Feb, 2016 1 commit
  15. 17 Feb, 2016 1 commit
  16. 11 Feb, 2016 1 commit
  17. 09 Feb, 2016 1 commit
  18. 27 Jan, 2016 1 commit
    • Brenden Blanco's avatar
      Updates to use cmake GLOB and libbcc.so.0 in python init · 5bd0eb21
      Brenden Blanco authored
      In order not to miss some files in the tools and examples source
      directories, use cmake file(GLOB) to collect relevant files. To ease the
      implementation, move all tools to be .py suffixed in the source, but
      sans-suffix in the installation (same as before)
      
      In addition, to prevent future API breakage confusion (though of course
      that may still happen), use CDLL("libbcc.so.0") in the bcc __init__.py.
      
      Fixes: #317
      Signed-off-by: default avatarBrenden Blanco <bblanco@plumgrid.com>
      5bd0eb21
  19. 14 Jan, 2016 1 commit
  20. 21 Sep, 2015 1 commit
  21. 18 Sep, 2015 1 commit