Skip to content
Snippets Groups Projects
  1. Mar 02, 2021
  2. Jul 08, 2020
    • Chen HaoNing's avatar
      Replace kprobe function "blk_account_io_completion" to "blk_account_io_done"... · 95c9229e
      Chen HaoNing authored
      Replace kprobe function "blk_account_io_completion" to "blk_account_io_done" for kernel version >= 5.8.0
      
      The kernel function "blk_account_io_completion" is not available anymore as attach point of Kprobe as of kernel version 5.8.0. Therefore, after discussions, we decided to use function "blk_account_io_done" instead in every kprobe attachment to "blk_account_io_completion".
      95c9229e
  3. Oct 31, 2019
    • yonghong-song's avatar
      introduce map.lookup_or_try_init() (#2577) · 82f4302a
      yonghong-song authored
      Previously, map.lookup_or_init() may cause unexpected
      return from the function when lookup finds no element and
      init failed e.g. due to unlikely racy update or
      sometimes hash table full.
      This has caught surprise from many users. So, the commit
        https://github.com/iovisor/bcc/commit/ba64f031f2435aad5a85f8f37dbbe2a982cbbe6b
      attempts to remove the early return in map.lookup_or_init().
      But then since NULL pointer could be returned,
      user will need to change their bpf program to check return value,
      otherwise, verifier will reject the program.
      
      As described in the above, such an API behavior change may cause
      verifier failure and reject previously loadable bpf programs.
      bcc should try to maintain API stability, esp. to avoid subtle
      API behavior change.
      
      This patch propose to restore the behavior of map.lookup_or_init()
      and introduce a new one map.lookup_or_try_init(), which will
      avoid unexpected return. The name is suggested by Alexei
      to reflect that init may fail. map.lookup_or_try_init() will be formally
      documented and used in bcc. A warning will be generated if
      map.lookup_or_init() is used. Documentation will make it clear
      that map.lookup_or_try_init() is preferred over map.lookup_or_init().
      
      ```
      -bash-4.4$ sudo ./syscount.py
      /virtual/main.c:71:11: warning: lookup_or_init() may return from the function, use loopup_or_try_init() instead.
          val = data.lookup_or_init(&key, &zero);
                ^
      1 warning generated.
      Tracing syscalls, printing top 10... Ctrl+C to quit.
      ...
      ```
      
      All uses in examples and tools are converted to use
      lookup_or_try_init(). Most tests are converted to use
      lookup_or_try_init() too except test_trace_maxactive.py
      and test_tracepoint.py to test lookup_or_init()
      functionality.
      82f4302a
  4. Sep 20, 2019
    • Philip Gladstone's avatar
      Fixes #2518 -- weird behaviour of lookup_or_init (#2520) · ba64f031
      Philip Gladstone authored
      * Allow lookup_or_init to return NULL (rather than just returning from the current function)
      * Fixed a couple of bad edits found when running tests. Also fixed a bug in the
      test runner. Also fixed a bug in libbcc where the python signature did not match
      the actual implementation.
      ba64f031
  5. Mar 20, 2019
  6. Jan 16, 2019
  7. Jan 11, 2019
  8. Jan 03, 2019
  9. Dec 10, 2018
  10. Oct 09, 2018
    • 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
  11. Jan 20, 2018
    • Nathan Scott's avatar
      Drop use of 'allow_abbrev' as its python 3.5 or later only · 1a197dbf
      Nathan Scott authored
      Use of this argparse constructor keyword is causing regression
      test failures, and its use was nice-to-have - this means the -e
      shorthand for --ebpf will be available iff its not been used in
      another add_argument call.  Neither -e/--ebpf are advertised in
      the usage message anyway.
      1a197dbf
  12. Jan 16, 2018
  13. Mar 26, 2017
    • 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
  14. Jan 08, 2017
    • Ryan Leary's avatar
      Fixes bio{snoop,top} on 4.10. · bc43a290
      Ryan Leary authored
      This commit fixes #888.  The 2 scripts run the same check, and now run
      basically the same code to do it.
      
      Tested on 4.10-rc2.
      bc43a290
  15. Nov 29, 2016
  16. Feb 07, 2016
Loading