Skip to content
Snippets Groups Projects
  1. May 09, 2021
  2. May 07, 2021
  3. May 06, 2021
  4. May 05, 2021
  5. May 01, 2021
  6. Apr 30, 2021
    • Dave Marchevsky's avatar
      Move HAVE_BUILTIN_BSWAP includes to separate header · d089013e
      Dave Marchevsky authored
      As reported in #3366, on newer kernels bcc complains about macro
      redefinition when compiling bpf programs:
      
      ```
      include/linux/compiler-clang.h:46:9: warning: '__HAVE_BUILTIN_BSWAP64__' macro redefined [-Wmacro-redefined]
      \#define __HAVE_BUILTIN_BSWAP64__
              ^
      <command line>:5:9: note: previous definition is here
      \#define __HAVE_BUILTIN_BSWAP64__ 1
      ```
      
      Since these macros are passed in as `-D` cflags, they appear first
      before any \#define statements in code. Since an [upstream kernel
      patch](https://lore.kernel.org/linux-csky/20210226161151.2629097-1-arnd@kernel.org/)
      added these defines in a kernel header, we see the warning.
      
      This patch moves these definitions to a separate 'virtual' header that's included
      after virtual_bpf.h and adds an ifndef guard. As a result, newer kernels
      with the patch will not trigger the warning, while older kernels will
      not lose the definition.
      
      This should be safe based on my digging - some existing bcc programs use
      `__builtin_bswap` methods, but without checking HAVE_BUILTIN_BSWAP.
      Macros that may be conditionally defined based on HAVE_BUILTIN_BSWAP,
      like those in `bpf_endian.h`, aren't. If a similar macro or struct def
      in virtual_bpf.h - or any header it pulls in - changes depending on
      HAVE_BUILTIN_BSWAP this could cause problems on older kernels, but I
      don't believe that this is the case, or will be based on how
      infrequently the defines are checked.
      d089013e
    • zcy's avatar
      feature: support create new map and pin it to bpffs as file(BPF_TABLE_PINNED) (#3382) · b209161f
      zcy authored
      
      Support create a new map and pin it if the pinned file is not available.
      
      Co-authored-by: default avatarchenyue.zhou <chenyue.zhou@upai.com>
      b209161f
  7. Apr 29, 2021
    • Yonghong Song's avatar
      Revert "add macros offsetof and container_of" · 356ab6c0
      Yonghong Song authored
      
      This reverts commit cda7acdb.
      
      This will tigger ugly compilation macro redefined warnings:
        $ sudo ./biolatency.py
        In file included from /virtual/main.c:3:
        In file included from include/linux/blkdev.h:5:
        In file included from include/linux/sched.h:12:
        In file included from arch/x86/include/asm/current.h:6:
        In file included from arch/x86/include/asm/percpu.h:45:
        include/linux/kernel.h:992:9: warning: 'container_of' macro redefined [-Wmacro-redefined]
        #define container_of(ptr, type, member) ({                              \
                ^
        /virtual/include/bcc/helpers.h:48:9: note: previous definition is here
        #define container_of(ptr, type, member)                         \
                ^
        1 warning generated.
        Tracing block device I/O... Hit Ctrl-C to end.
      Revert now and let us design how to support it better. For example, may
      create a different header file to put common kernel macros there to be
      used by the program.
      
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      356ab6c0
    • Simone Magnani's avatar
      enhanced items_delete_batch() in Python to avoid double list creation · 071f1ec5
      Simone Magnani authored
      
      This commit enhances the items_delete_batch() function by accepting a ct.Array instead of a Python list.
      This way, the array does not need to be re-created, allowing to directly perform the requested operation.
      
      Signed-off-by: default avatarSimone Magnani <simonemagnani.96@gmail.com>
      071f1ec5
    • Simone Magnani's avatar
      added bpf_update_batch() API support for Python Maps · 19df7ee6
      Simone Magnani authored
      
      This commit aims at introducing items_update_batch, batch operation to update multiple key-value pairs at the same time.
      Doc has been updated accordingly, and a test is provided.
      
      Signed-off-by: default avatarSimone Magnani <simonemagnani.96@gmail.com>
      19df7ee6
    • Simone Magnani's avatar
      modified self.max_entries to be available from all the MAP types · 8034be61
      Simone Magnani authored
      
      This commit introduces the self.max_entries attribute both into Queue/Stack maps and to all those whwqo extend TableBase
      
      Signed-off-by: default avatarSimone Magnani <simonemagnani.96@gmail.com>
      8034be61
    • Simone Magnani's avatar
      introduced Queue/Stack itervalues · 226816d0
      Simone Magnani authored
      
      This commit introduces the possibility to iterate over all elements of a Queue/Stack.
      To avoid infinite loop, a maximum of MAX_ENTRIES pop() are performed
      
      Signed-off-by: default avatarSimone Magnani <simonemagnani.96@gmail.com>
      226816d0
    • edwardwu's avatar
      tools/biolatency: Extend average/total value · f41f3789
      edwardwu authored
      
      Sometimes log2 range is not enough for throughput tuning.
      Especially a little difference in performance downgrade.
      
      Also, this extension uses two bpf helper bpf_map_lookup_elem().
      It's a cost on embedded system, therefore it's better to be an option.
      
      Signed-off-by: default avatarEdward Wu <edwardwu@realtek.com>
      f41f3789
    • Jerome Marchand's avatar
      Fix BPF(src_file="foo") · 09dc278d
      Jerome Marchand authored
      Since commit 75f20a15 ("Use string type for comparison to PATH
      elements"), src_file isn't working anymore. Somehow, two wrongs
      (ArgString __str__() returning a bytes object and joining a bytes and
      what was supposed to be a string) did make a right.
      
      It fixes the following error in netqtop and deadlock:
      Traceback (most recent call last):
        File "/usr/share/bcc/tools/netqtop", line 207, in <module>
          b = BPF(src_file = EBPF_FILE)
        File "/usr/lib/python3.6/site-packages/bcc/__init__.py", line 335, in __init__
          src_file = BPF._find_file(src_file)
        File "/usr/lib/python3.6/site-packages/bcc/__init__.py", line 255, in _find_file
          t = b"/".join([os.path.abspath(os.path.dirname(argv0.__str__())), filename])
      TypeError: sequence item 0: expected a bytes-like object, str found
      09dc278d
  8. Apr 28, 2021
    • netedwardwu's avatar
      tools/funclatency: Should clear() after display that is what we want (#3380) · e0c8c10c
      netedwardwu authored
      
      BUG:
      funclatency memcpy -i 2
           nsecs               : count     distribution
               0 -> 1          : 0        |                                        |
               2 -> 3          : 0        |                                        |
               4 -> 7          : 0        |                                        |
               8 -> 15         : 0        |                                        |
              16 -> 31         : 0        |                                        |
              32 -> 63         : 0        |                                        |
              64 -> 127        : 0        |                                        |
             128 -> 255        : 0        |                                        |
             256 -> 511        : 0        |                                        |
             512 -> 1023       : 0        |                                        |
            1024 -> 2047       : 0        |                                        |
            2048 -> 4095       : 28       |************                            |
            4096 -> 8191       : 92       |****************************************|
      
      avg = 4265 nsecs, total: 9413985 nsecs, count: 2207
      
           nsecs               : count     distribution
               0 -> 1          : 0        |                                        |
               2 -> 3          : 0        |                                        |
               4 -> 7          : 0        |                                        |
               8 -> 15         : 0        |                                        |
              16 -> 31         : 0        |                                        |
              32 -> 63         : 0        |                                        |
              64 -> 127        : 0        |                                        |
             128 -> 255        : 0        |                                        |
             256 -> 511        : 0        |                                        |
             512 -> 1023       : 0        |                                        |
            1024 -> 2047       : 0        |                                        |
            2048 -> 4095       : 38       |******                                  |
            4096 -> 8191       : 248      |****************************************|
      
      avg = 4304 nsecs, total: 11066321 nsecs, count: 2571
      
      After long-run, you can see the count above is totally wrong.
      
      Also, display together before together clearing is important for better accuracy.
      
      Signed-off-by: default avatarEdward Wu <edwardwu@realtek.com>
      e0c8c10c
    • yzhao's avatar
      Add BPFStackTable::free_symcache() to free the symbol cache for an PID (#3371) · 23447d29
      yzhao authored
      This is useful when BPFStackTable is used by a long running program to
      limit the memory usage, by removing the cached symbols of an exited
      process.
      23447d29
  9. Apr 26, 2021
  10. Apr 25, 2021
  11. Apr 16, 2021
  12. Apr 10, 2021
  13. Apr 06, 2021
  14. Apr 05, 2021
  15. Apr 01, 2021
  16. Mar 22, 2021
  17. Mar 20, 2021
Loading