{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":34921116,"defaultBranch":"master","name":"bcc","ownerLogin":"iovisor","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-05-01T19:52:32.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/12766186?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1711325823.0","currentOid":""},"activityList":{"items":[{"before":"fef9003e2e2f29c893543d49b762dd413a352f05","after":"77c05910b1be96467547904c837da9eab7b775a5","ref":"refs/heads/master","pushedAt":"2024-05-07T20:34:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"profile.py: On pre-5.7 kernels, skip pid ns mapping (fallback) (#4974)\n\nbpf_get_ns_current_pid_tgid() is not available before Linux 5.7:\r\n\r\nWhen the kernel is prior to 5.7, skip pid namespace translation,\r\nas bpf_get_ns_current_pid_tgid() would not be available then.\r\n\r\nSigned-off-by: Bernhard Kaindl ","shortMessageHtmlLink":"profile.py: On pre-5.7 kernels, skip pid ns mapping (fallback) (#4974)"}},{"before":"74fe7200ffb1d991c4e839f184c705f0a45006d9","after":"fef9003e2e2f29c893543d49b762dd413a352f05","ref":"refs/heads/master","pushedAt":"2024-05-02T00:17:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chenhengqi","name":"Hengqi Chen","path":"/chenhengqi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4277743?s=80&v=4"},"commit":{"message":"libbpf-tools/trace_helpers: Fix incorrect DSO information in stacktrace\n\noffcputime may display inaccurate DSO information in the stacktrace.\nHere's an example of the issue:\n\nIt shows the same DSO offset for different addresses, which is incorrect.\n $ ./offcputime -v\n ..\n #14 0x00007f8b912a8c (/usr/lib/libcbe.so_0x22afa8c)\n #15 0x000044000a3ee0 (/usr/lib/libcbe.so_0x22afa8c)\n #16 0x000044001fc56c (/usr/lib/libcbe.so_0x22afa8c)\n\nThis is why syms__map_addr_dso simply returns NULL when syms__find_dso also\nreturns NULL. In that case, the values of dso_name and dso_offset are not\nchanged. If the dso_name and dso_offset variables have a garbage value before\ncalling syms__map_addr_dso, those garbage values are maintained after calling\nsyms__map_addr_dso.\n\nTo ensure consistent usage of DSO info and symbol info, the prototype of\nsyms__map_addr_dso has been modified to be similar to dladdr[1].\n\nThis is the prototype of dladdr:\n int dladdr(void *addr, Dl_info *info);\n\nThe information is returned in a Dl_info structure. If no symbol matching addr\ncould be found, then dli_sname and dli_saddr are set to NULL.\n typedef struct {\n const char *dli_fname; /* Pathname of shared object that\n contains address */\n void *dli_fbase; /* Base address at which shared\n object is loaded */\n const char *dli_sname; /* Name of symbol whose definition\n overlaps addr */\n void *dli_saddr; /* Exact address of symbol named\n in dli_sname */\n } Dl_info;\n\nSimilarly, if no symbol matching the addr could be found, then sym_name and\nsym_offset are set to NULL in syms__map_addr_dso of this patch.\n\nAlso, apply the modified API usage to offcputime, futexctn, and memleak.\n\n[1] https://man7.org/linux/man-pages/man3/dladdr.3.html","shortMessageHtmlLink":"libbpf-tools/trace_helpers: Fix incorrect DSO information in stacktrace"}},{"before":"679166bdee74302b46b14c3a8fe5c3db7198d3f4","after":"74fe7200ffb1d991c4e839f184c705f0a45006d9","ref":"refs/heads/master","pushedAt":"2024-04-30T18:57:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"libbpf-tools: enforce missing-field-initializers warning and error on warnings (#4975)\n\nIn an internal build where `missing-field-initializers` would be enforce,\r\nlibbpf-tools would fail to build with an error similar to:\r\n```\r\ntcptop.c:75:9: error: missing initializer for field 'group' of 'const struct argp_option' [-Werror=missing-field-initializers]\r\n 75 | { \"nosummary\", 'S', NULL, 0, \"Skip system summary line\"},\r\n | ^\r\nIn file included from tcptop.c:10:\r\n/usr/include/argp.h:73:7: note: 'group' declared here\r\n 73 | int group;\r\n | ^~~~~\r\n```\r\n\r\nThis change tacks the default group value of 0 to all `struct argp_option` used\r\nin libbpf-tools.\r\n\r\nAt the same time, I am taking the opportunity to promote warnings to error\r\nin order to prevent regressions from making it in.\r\n\r\nSigned-off-by: Manu Bretelle ","shortMessageHtmlLink":"libbpf-tools: enforce missing-field-initializers warning and error on…"}},{"before":"c50db02860b6e4ca01eee7de767ab2c31133bd87","after":"679166bdee74302b46b14c3a8fe5c3db7198d3f4","ref":"refs/heads/master","pushedAt":"2024-04-15T22:26:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"libbpf-tools/numamove: Add folio support (#4955)\n\nIn [0] kernel commit 73eab3ca481e (\"mm: migrate: convert migrate_misplaced_page()\r\nto migrate_misplaced_folio()\") convert migrate_misplaced_page() to\r\nmigrate_misplaced_folio().\r\n\r\nKernel version:\r\n\r\n $ git describe 73eab3ca481e5be0f1fd8140365d604482f84ee1\r\n v6.6-rc4-109-g73eab3ca481e\r\n\r\n[0] https://github.com/torvalds/linux/commit/73eab3ca481e\r\n\r\nSigned-off-by: Rong Tao ","shortMessageHtmlLink":"libbpf-tools/numamove: Add folio support (#4955)"}},{"before":"c0e9b562675bcd18eff9443af4e0d2cc55e38738","after":"c50db02860b6e4ca01eee7de767ab2c31133bd87","ref":"refs/heads/master","pushedAt":"2024-04-15T20:52:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"*.py: fix incorrect regex escaping (#4961)\n\nFixes #4959","shortMessageHtmlLink":"*.py: fix incorrect regex escaping (#4961)"}},{"before":"a0ca636cfe0f99ef986525a8d6e2ed24614491f1","after":"c0e9b562675bcd18eff9443af4e0d2cc55e38738","ref":"refs/heads/master","pushedAt":"2024-04-11T01:59:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chenhengqi","name":"Hengqi Chen","path":"/chenhengqi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4277743?s=80&v=4"},"commit":{"message":"libbpf-tools: add CO-RE 'syncsnoop'\n\nThis is a CO-RE port of the Brendan Gregg's syncsnoop BCC Python tool.\nThe code is heavily inspired by the 'runqslower' port, with variables\nnaming and comments style borrowed from other CO-RE tools.","shortMessageHtmlLink":"libbpf-tools: add CO-RE 'syncsnoop'"}},{"before":"82867366687792332c7e28a7b4593f4bd467bf8d","after":"a0ca636cfe0f99ef986525a8d6e2ed24614491f1","ref":"refs/heads/master","pushedAt":"2024-04-10T01:52:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chenhengqi","name":"Hengqi Chen","path":"/chenhengqi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4277743?s=80&v=4"},"commit":{"message":"INSTALL.md: Add Ubuntu 23.10 (Mantic Minotaur) packages","shortMessageHtmlLink":"INSTALL.md: Add Ubuntu 23.10 (Mantic Minotaur) packages"}},{"before":"41fdca27a1e7f057608bfb4cb1ad5a96ee3cfe9f","after":"82867366687792332c7e28a7b4593f4bd467bf8d","ref":"refs/heads/master","pushedAt":"2024-04-10T01:51:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chenhengqi","name":"Hengqi Chen","path":"/chenhengqi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4277743?s=80&v=4"},"commit":{"message":"libbpf-tools: Use `BPF_U[RET]PROBE` for uprobes","shortMessageHtmlLink":"libbpf-tools: Use BPF_U[RET]PROBE for uprobes"}},{"before":"6a5602cef2ebd97c351554d53a4f95532db6a568","after":"41fdca27a1e7f057608bfb4cb1ad5a96ee3cfe9f","ref":"refs/heads/master","pushedAt":"2024-04-10T01:45:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chenhengqi","name":"Hengqi Chen","path":"/chenhengqi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4277743?s=80&v=4"},"commit":{"message":"docs: Fix typo","shortMessageHtmlLink":"docs: Fix typo"}},{"before":"5e408a4b326d76817590a9664f55f28853410f74","after":"6a5602cef2ebd97c351554d53a4f95532db6a568","ref":"refs/heads/master","pushedAt":"2024-04-02T00:00:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"fix zfsslower check for zpl_read / zpl_iter (fixes #4952) (#4953)\n\n* fix zfsslower/zfsdist check for zpl_read / zpl_iter (fixes #4952)\r\n\r\nThis fixes a regression of #1248: The original fix #1324 assumed that\r\nBPF.get_kprobe_functions checks the given regex against any substring of\r\nthe function name, but 2b203ea later changed get_kprobe_functions to do\r\nre.fullmatch instead.\r\n\r\nzfsdist was also not updated since\r\nhttps://github.com/iovisor/bcc/commit/2b203ea20d5db4d36e16c07592eb8cc5e919e46c\r\nand it the get_kprobe_functions seem to originate from the same\r\ncommit as those in zfsslower. So I assume the intend is the same.\r\n\r\nCo-authored-by: seb314 ","shortMessageHtmlLink":"fix zfsslower check for zpl_read / zpl_iter (fixes #4952) (#4953)"}},{"before":"947bd741c5d454e52b2426c964325168a8b98263","after":"5e408a4b326d76817590a9664f55f28853410f74","ref":"refs/heads/master","pushedAt":"2024-04-01T22:15:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"Workround flaky subtest 'offaketime.py 1' in test_tools_smoke.py (#4954)\n\nI observed frequent failure for the following test:\r\n\r\n FAIL: test_offwaketime (__main__.SmokeTests.test_offwaketime)\r\n ----------------------------------------------------------------------\r\n Traceback (most recent call last):\r\n File \"/bcc/tests/python/test_tools_smoke.py\", line 275, in test_offwaketime\r\n self.run_with_duration(\"offwaketime.py 1\")\r\n File \"/bcc/tests/python/test_tools_smoke.py\", line 40, in run_with_duration\r\n self.assertEqual(0, # clean exit\r\n AssertionError: 0 != 1\r\n\r\nThe reason is that 'offwaketime.py' may need more time to dump\r\nresults after 1 second of stack collection. Increase timeout to 30\r\nseconds to tolerate potential long delays.\r\n\r\nSigned-off-by: Yonghong Song ","shortMessageHtmlLink":"Workround flaky subtest 'offaketime.py 1' in test_tools_smoke.py (#4954)"}},{"before":"beee3ca27b0aea45b61924daf03cae1154194438","after":"5732808cbe4d08c36a6164c6997ba51a29b1022f","ref":"refs/heads/yhs_dev","pushedAt":"2024-04-01T21:27:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"Workround flaky subtest 'offaketime.py 1' in test_tools_smoke.py\n\nI observed frequent failure for the following test:\n\n FAIL: test_offwaketime (__main__.SmokeTests.test_offwaketime)\n ----------------------------------------------------------------------\n Traceback (most recent call last):\n File \"/bcc/tests/python/test_tools_smoke.py\", line 275, in test_offwaketime\n self.run_with_duration(\"offwaketime.py 1\")\n File \"/bcc/tests/python/test_tools_smoke.py\", line 40, in run_with_duration\n self.assertEqual(0, # clean exit\n AssertionError: 0 != 1\n\nThe reason is that 'offwaketime.py' may need more time to dump\nresults after 1 second of stack collection. Increase timeout to 30\nseconds to tolerate potential long delays.\n\nSigned-off-by: Yonghong Song ","shortMessageHtmlLink":"Workround flaky subtest 'offaketime.py 1' in test_tools_smoke.py"}},{"before":"82bfd09dc993ce23a411e19751100da44b66e204","after":"947bd741c5d454e52b2426c964325168a8b98263","ref":"refs/heads/master","pushedAt":"2024-04-01T03:58:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"tools/{biolatency,biosnoop,biotop}: Use tracepoint first (#4950)\n\nSince kernel introduce block:block_io_{start,done}, we should use tracepoint\r\nfirst, just like the follow error i got on Fedora 39\r\n\r\n $ sudo ./biolatency.py\r\n ...\r\n cannot attach kprobe, Invalid argument\r\n Traceback (most recent call last):\r\n File \"/home/sda/git-repos/bcc/tools/./biolatency.py\", line 291, in \r\n b.attach_kprobe(event=\"blk_account_io_done\", fn_name=\"trace_req_done\")\r\n File \"/usr/lib/python3.12/site-packages/bcc/__init__.py\", line 845, in attach_kprobe\r\n raise Exception(\"Failed to attach BPF program %s to kprobe %s\"\r\n Exception: Failed to attach BPF program b'trace_req_done' to kprobe b'blk_account_io_done',\r\n it's not traceable (either non-existing, inlined, or marked as \"notrace\")\r\n\r\nSigned-off-by: Rong Tao ","shortMessageHtmlLink":"tools/{biolatency,biosnoop,biotop}: Use tracepoint first (#4950)"}},{"before":"e7109fa0f17bdda4de0a7f05b03f563ead0150f4","after":"82bfd09dc993ce23a411e19751100da44b66e204","ref":"refs/heads/master","pushedAt":"2024-03-25T11:55:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chenhengqi","name":"Hengqi Chen","path":"/chenhengqi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4277743?s=80&v=4"},"commit":{"message":"libbpf-tools: Support memleak trace third-part allocators\n\nMemleak run failed when trace task who use jemalloc, and luckly i see it\nfixed in memleak.py: https://github.com/iovisor/bcc/pull/4812/files, so\nwe can also support on c version.\n\ncompile jemalloc with \"je_\" prefix:\n./configure --with-jemalloc-prefix=je_\n\njemalloc test case:\n #include \n #include \n #include \n #include \n\n #define malloc(size) je_malloc(size)\n #define free(ptr) je_free(ptr)\n int main(void)\n {\n for (int i = 0; i < 100; i++) {\n void *p = malloc(1000);\n sleep(1);\n }\n return 0;\n }\ngcc -o alloc alloc.c -ljemalloc\n\ntest result:\nsudo ./memleak -p $(pidof alloc) -O /usr/local/lib/libjemalloc.so -S je_\n\nlibbpf: elf: ambiguous match for 'mmap@GLIBC_2.2.5', 'mmap' in '/usr/local/lib/libjemalloc.so'\nlibbpf: elf: ambiguous match for 'mmap@GLIBC_2.2.5', 'mmap' in '/usr/local/lib/libjemalloc.so'\nlibbpf: elf: ambiguous match for 'munmap@GLIBC_2.2.5', 'munmap' in '/usr/local/lib/libjemalloc.so'\nlibbpf: elf: failed to find symbol 'pvalloc' in '/usr/local/lib/libjemalloc.so'\nlibbpf: elf: failed to find symbol 'pvalloc' in '/usr/local/lib/libjemalloc.so'\nTracing outstanding memory allocs... Hit Ctrl-C to end\n[15:12:34] Top 1 stacks with outstanding allocations:\n5000 bytes in 5 allocations from stack\n 0 [<00005584f3217188>] main+0x1f\n 1 [<00007fe897617d90>] __libc_init_first+0x90\n[15:12:39] Top 1 stacks with outstanding allocations:\n10000 bytes in 10 allocations from stack\n 0 [<00005584f3217188>] main+0x1f\n 1 [<00007fe897617d90>] __libc_init_first+0x90\n\nSigned-off-by: Tao Chen ","shortMessageHtmlLink":"libbpf-tools: Support memleak trace third-part allocators"}},{"before":"5f21a72744fadca8624f4884936cb2a62cc30b8c","after":"e7109fa0f17bdda4de0a7f05b03f563ead0150f4","ref":"refs/heads/master","pushedAt":"2024-03-24T23:29:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"Update debian changelog for release v0.30.0 (#4947)\n\n* Support for kernel up to 6.8.\r\n * Set minimum supported llvm version to 12, and add llvm17 test.\r\n * Add workqueue latency observation tool.\r\n * libbpf tool update: f2fsslower, opensnoop, futexctn, bindsnoop, ksnoop, klockstat, offcputime, etc.\r\n * bcc tool update: memleak, ttysnoop, bashreadline, tcpdrop, execsnoop, etc.\r\n * allow more flexible perf event options with new perf_custom_event_open() python API.\r\n * Fix userspace stack unwinding on powerpc.\r\n * add bpf_prog_test_run_opts() python API.\r\n * several deb package related changes.\r\n * Fix btf_type_tag issue with llvm 15.\r\n * Fix several flaky tests.\r\n * classify tools into different sub-categories.\r\n * doc update, other bug fixes and tools improvement.\r\n\r\nSigned-off-by: Yonghong Song ","shortMessageHtmlLink":"Update debian changelog for release v0.30.0 (#4947)"}},{"before":"a5a46f9af9791a04155e07e22978301f356dd54d","after":"beee3ca27b0aea45b61924daf03cae1154194438","ref":"refs/heads/yhs_dev","pushedAt":"2024-03-24T23:07:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"Update debian changelog for release v0.30.0\n\n * Support for kernel up to 6.8.\n * Set minimum supported llvm version to 12, and add llvm17 test.\n * Add workqueue latency observation tool.\n * libbpf tool update: f2fsslower, opensnoop, futexctn, bindsnoop, ksnoop, klockstat, offcputime, etc.\n * bcc tool update: memleak, ttysnoop, bashreadline, tcpdrop, execsnoop, etc.\n * allow more flexible perf event options with new perf_custom_event_open() python API.\n * Fix userspace stack unwinding on powerpc.\n * add bpf_prog_test_run_opts() python API.\n * several deb package related changes.\n * Fix btf_type_tag issue with llvm 15.\n * Fix several flaky tests.\n * classify tools into different sub-categories.\n * doc update, other bug fixes and tools improvement.\n\nSigned-off-by: Yonghong Song ","shortMessageHtmlLink":"Update debian changelog for release v0.30.0"}},{"before":"cb972b994364abe55b66c4bbe022db56f610fcbe","after":"5f21a72744fadca8624f4884936cb2a62cc30b8c","ref":"refs/heads/master","pushedAt":"2024-03-22T18:03:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"libbpf-tools/gethostlatency: correct section name (#4944)\n\n\r\n\r\nhandle_entry and handle_return are attached to uprobes getaddrinfo, gethostbyname, and gethostbyname2, so it doesn't make sense to have the section name be kprobe","shortMessageHtmlLink":"libbpf-tools/gethostlatency: correct section name (#4944)"}},{"before":"ba1041de673db0998e410541f9d25f480b59f6af","after":"cb972b994364abe55b66c4bbe022db56f610fcbe","ref":"refs/heads/master","pushedAt":"2024-03-22T18:01:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"Reomove \"-nopie\" option workaround for old clang. (#4945)\n\nfix: https://github.com/iovisor/bcc/issues/4931","shortMessageHtmlLink":"Reomove \"-nopie\" option workaround for old clang. (#4945)"}},{"before":"487331fe544a70d6dcd9e40ff106be75d46475cd","after":"ba1041de673db0998e410541f9d25f480b59f6af","ref":"refs/heads/master","pushedAt":"2024-03-22T17:55:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"fix deb build/docker ubuntu (#4943)\n\n* add missing trailing comma\r\n* add missing ubuntu dpkg dependency","shortMessageHtmlLink":"fix deb build/docker ubuntu (#4943)"}},{"before":"6fbcf16b4a4222b2ea92ea32ceed2532a28b8080","after":"487331fe544a70d6dcd9e40ff106be75d46475cd","ref":"refs/heads/master","pushedAt":"2024-03-19T00:31:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"Mark slabratetop.py not supported for >= 6.8 kernel\n\nslabratetop.py failed with 6.8 kernel with\n\n /virtual/main.c:100:10: fatal error: 'linux/slub_def.h' file not found\n 100 | #include \n | ^~~~~~~~~~~~~~~~~~\n 1 error generated.\n\nActually 'kmem_cache' is also not available to bcc any more.\nEither copying 'kmem_cache' or using mini-CORE like logic\nare too complex and error prone ([1]). So let us mark\nthe tool is not supported for >= 6.8 kernel and suggest\nto use libbpf-tool version of slabratetop if needed.\n\n [1]. https://github.com/iovisor/bcc/pull/4940\n\nSigned-off-by: Yonghong Song ","shortMessageHtmlLink":"Mark slabratetop.py not supported for >= 6.8 kernel"}},{"before":"e0a1cd62069c02b32efe2c9fa5e93256475c3d97","after":"a5a46f9af9791a04155e07e22978301f356dd54d","ref":"refs/heads/yhs_dev","pushedAt":"2024-03-18T17:18:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"Mark slabratetop.py not supported for >= 6.8 kernel\n\nslabratetop.py failed with 6.8 kernel with\n\n /virtual/main.c:100:10: fatal error: 'linux/slub_def.h' file not found\n 100 | #include \n | ^~~~~~~~~~~~~~~~~~\n 1 error generated.\n\nActually 'kmem_cache' is also not available to bcc any more.\nEither copying 'kmem_cache' or using mini-CORE like logic\nare too complex and error prone ([1]). So let us mark\nthe tool is not supported for >= 6.8 kernel and suggest\nto use libbpf-tool version of slabratetop if needed.\n\n [1]. https://github.com/iovisor/bcc/pull/4940\n\nSigned-off-by: Yonghong Song ","shortMessageHtmlLink":"Mark slabratetop.py not supported for >= 6.8 kernel"}},{"before":null,"after":"0fed654759a998dcf6fe124a0c2e3ec2aa6a01c4","ref":"refs/heads/fix-slab","pushedAt":"2024-03-18T04:34:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"Fix slabratetop.py for 6.8 kernel\n\nslabratetop.py failed with 6.8 kernel with\n\n /virtual/main.c:100:10: fatal error: 'linux/slub_def.h' file not found\n 100 | #include \n | ^~~~~~~~~~~~~~~~~~\n 1 error generated.\n\nActually 'kmem_cache' is also not available to bcc any more.\nWe already copied 'slab' data structure to bcc, copying yet\nanother one (probably with others) will make things too\ncomplex and error prone.\n\nLet us use newly introduced kernel_struct_field_size_offset() API.\nWe could get some data structure (field, size) information\nfrom kernel BTF. This enables us to work around header file\nnot available issue.\n\nSigned-off-by: Yonghong Song ","shortMessageHtmlLink":"Fix slabratetop.py for 6.8 kernel"}},{"before":"57ca51bdd9c86870a43b9f76e062b3aede226ca4","after":"6fbcf16b4a4222b2ea92ea32ceed2532a28b8080","ref":"refs/heads/master","pushedAt":"2024-03-17T22:58:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"Fix another btf_type_tag issue with llvm 15\n\nCommit 57ca51bdd9c8 (\"Fix btf_type_tag issue with llvm 15\") fixed\nan issue where \"btf_type_tag(rcu)\" should be replaced with\n\"__attribute__((btf_type_tag(\\\"rcu\\\")))\".\n\nI audited some other bcc tools and found another similar failure\npattern during processing funciton arguments. Three tools are\ndirtop.py, fileslower.py and filetop.py.\n\nThe failure pattern for dirtop.py looks like:\n\n /virtual/main.c:79:72: error: expected ')'\n struct file *file = (struct file *)ctx->di; char __user *buf =\n (char btf_type_tag(user)*)ctx->si; size_t count = (size_t)ctx->dx;\n\nAgain, the \"btf_type_tag(user)\" should be replaced with\n\"__attribute__((btf_type_tag(\\\"user\\\")))\". This patch fixed this issue.\n\nSigned-off-by: Yonghong Song ","shortMessageHtmlLink":"Fix another btf_type_tag issue with llvm 15"}},{"before":"ac73a47c23745137a77583b493a8b3eb1ee5c3e8","after":"e0a1cd62069c02b32efe2c9fa5e93256475c3d97","ref":"refs/heads/yhs_dev","pushedAt":"2024-03-17T21:23:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"Fix another btf_type_tag issue with llvm 15\n\nCommit 57ca51bdd9c8 (\"Fix btf_type_tag issue with llvm 15\") fixed\nan issue where \"btf_type_tag(rcu)\" should be replaced with\n\"__attribute__((btf_type_tag(\\\"rcu\\\")))\".\n\nI audited some other bcc tools and found another similar failure\npattern during processing funciton arguments. Three tools are\ndirtop.py, fileslower.py and filetop.py.\n\nThe failure pattern for dirtop.py looks like:\n\n /virtual/main.c:79:72: error: expected ')'\n struct file *file = (struct file *)ctx->di; char __user *buf =\n (char btf_type_tag(user)*)ctx->si; size_t count = (size_t)ctx->dx;\n\nAgain, the \"btf_type_tag(user)\" should be replaced with\n\"__attribute__((btf_type_tag(\\\"user\\\")))\". This patch fixed this issue.\n\nSigned-off-by: Yonghong Song ","shortMessageHtmlLink":"Fix another btf_type_tag issue with llvm 15"}},{"before":"c00d69ceb5dbbf1dedd2e30c5e16ba5ed23b50be","after":"57ca51bdd9c86870a43b9f76e062b3aede226ca4","ref":"refs/heads/master","pushedAt":"2024-03-17T20:20:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"Fix btf_type_tag issue with llvm 15\n\nWith llvm15, the tool 'execsnoop.py' failed the compilation with\nthe following error messages:\n\n ...\n /virtual/main.c:103:157: error: expected ')'\n data.ppid = ({ typeof(pid_t) _val; __builtin_memset(&_val, 0, sizeof(_val));\n bpf_probe_read(&_val, sizeof(_val), (void *)&({ typeof(struct task_struct btf_type_tag(rcu)*) _val;\n __builtin_memset(&_val, 0, sizeof(_val));\n bpf_probe_read(&_val, sizeof(_val), (void *)&task->real_parent); _val; })->tgid); _val; });\n ...\n\nThe main reason is incorrect type string\n btf_type_tag(rcu)\nbtf_type_tag is introduced in llvm15 is an attribute. The correct type representation\nshould be\n __attribute__((btf_type_tag(\"rcu\")))\n\nThe bug is fixed in llvm16 with [1]. Unfortunately the patch cannot be backported to llvm15 since\nat that time llvm15 has been freezed.\n\nThis patch manually fixed this issue for bcc.\n\n [1] https://github.com/llvm/llvm-project/commit/82b4446f25d4b4a0b22f5d4c067c6a920045338a\n\nSigned-off-by: Yonghong Song ","shortMessageHtmlLink":"Fix btf_type_tag issue with llvm 15"}},{"before":"e03f123a2b2eca241a3b167037f0309ef178feb7","after":"ac73a47c23745137a77583b493a8b3eb1ee5c3e8","ref":"refs/heads/yhs_dev","pushedAt":"2024-03-17T19:39:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"Fix btf_type_tag issue with llvm 15\n\nWith llvm15, the tool 'execsnoop.py' failed the compilation with\nthe following error messages:\n\n ...\n /virtual/main.c:103:157: error: expected ')'\n data.ppid = ({ typeof(pid_t) _val; __builtin_memset(&_val, 0, sizeof(_val));\n bpf_probe_read(&_val, sizeof(_val), (void *)&({ typeof(struct task_struct btf_type_tag(rcu)*) _val;\n __builtin_memset(&_val, 0, sizeof(_val));\n bpf_probe_read(&_val, sizeof(_val), (void *)&task->real_parent); _val; })->tgid); _val; });\n ...\n\nThe main reason is incorrect type string\n btf_type_tag(rcu)\nbtf_type_tag is introduced in llvm15 is an attribute. The correct type representation\nshould be\n __attribute__((btf_type_tag(\"rcu\")))\n\nThe bug is fixed in llvm16 with [1]. Unfortunately the patch cannot be backported to llvm15 since\nat that time llvm15 has been freezed.\n\nThis patch manually fixed this issue for bcc.\n\n [1] https://github.com/llvm/llvm-project/commit/82b4446f25d4b4a0b22f5d4c067c6a920045338a\n\nSigned-off-by: Yonghong Song ","shortMessageHtmlLink":"Fix btf_type_tag issue with llvm 15"}},{"before":"15a2deca77f71866074c93b3a502836dfa5d4b67","after":"c00d69ceb5dbbf1dedd2e30c5e16ba5ed23b50be","ref":"refs/heads/master","pushedAt":"2024-03-17T16:09:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"clang: Fix file_exists_and_ownedby return value (#4935)\n\ncommit 008ea09 (clang: check header ownership) updates file_exists()\r\nto file_exists_and_ownedby(), add verifies onwer, but the return value\r\nis different from before, causing problems with the original code.\r\n\r\nSigned-off-by: Chunsheng Luo ","shortMessageHtmlLink":"clang: Fix file_exists_and_ownedby return value (#4935)"}},{"before":"bf197e37498838e0c1d388c75bdbff2de72ef2d0","after":"15a2deca77f71866074c93b3a502836dfa5d4b67","ref":"refs/heads/master","pushedAt":"2024-03-17T16:04:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"examples/tracing/undump.py: Add --hexdump argument (#4933)\n\nUse print and %x to print out the data:\r\n\r\n $ sudo ./undump.py\r\n ...\r\n Recv 32 bytes\r\n 01 20 c6 5e 01 00 00 00 06 00 00 00 00 00 00 00\r\n 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\r\n\r\nHowever, hexdump is the more standard approach:\r\n\r\n $ sudo ./undump.py --hexdump\r\n ...\r\n Recv 32 bytes\r\n 1c00eb615b03ad00780100001f6eb420\r\n 00000000000000000000000000000000\r\n\r\nAt the same time, remove useless 'import' lines.\r\n\r\nSigned-off-by: Rong Tao ","shortMessageHtmlLink":"examples/tracing/undump.py: Add --hexdump argument (#4933)"}},{"before":"008ea09e891194c072f2a9305a3c872a241dc342","after":"bf197e37498838e0c1d388c75bdbff2de72ef2d0","ref":"refs/heads/master","pushedAt":"2024-03-17T15:55:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"fix alias detection when installed with APP_PREFIX (#4932)\n\nSupport for prefixed installs with an APP_PREFIX variable was added in #4848.\r\n\r\nfsdist, fsslower, and sigsnoop support aliased execution but that only works as intended if basename(prog) matches the non-prefixed alias exactly:\r\n\r\n root@test:~# foo-prefix-ext4slower\r\n filesystem must be specified using -t option.\r\n\r\nThis PR simply relaxes that behavior to only find a string match:\r\n\r\n root@test:~# foo-prefix-ext4slower\r\n Tracing ext4 operations slower than 10 ms... Hit Ctrl-C to end.\r\n ...","shortMessageHtmlLink":"fix alias detection when installed with APP_PREFIX (#4932)"}},{"before":"6cd272189771bbc7120d9d834e2588b93d8e9cfa","after":"008ea09e891194c072f2a9305a3c872a241dc342","ref":"refs/heads/master","pushedAt":"2024-03-06T18:27:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yonghong-song","name":null,"path":"/yonghong-song","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12237474?s=80&v=4"},"commit":{"message":"clang: check header ownership (#4928)\n\nExample testing with a brendan-owned /tmp/kheaders file (note the \"ERROR:\" message):\r\n\r\n~/bcc/build$ sudo /usr/share/bcc/tools/biosnoop\r\nERROR: header file ownership unexpected: /tmp/kheaders-5.15.47-internal\r\n:1:10: fatal error: './include/linux/kconfig.h' file not found\r\n#include \"./include/linux/kconfig.h\"\r\n ^~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n1 error generated.\r\nTraceback (most recent call last):\r\n File \"/usr/share/bcc/tools/biosnoop\", line 335, in \r\n b = BPF(text=bpf_text)\r\n File \"/usr/lib/python3/dist-packages/bcc-0.1.5+6cd27218-py3.10.egg/bcc/__init__.py\", line 479, in __init__\r\nException: Failed to compile BPF module \r\n~/bcc/build$ ls -lhd /tmp/kheaders-5.15.47-internal\r\ndrwxrwxr-x 2 brendan dev 4.0K Mar 6 02:50 /tmp/kheaders-5.15.47-internal\r\n\r\nNo error when chown'd back to root.","shortMessageHtmlLink":"clang: check header ownership (#4928)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEQ_uhHAA","startCursor":null,"endCursor":null}},"title":"Activity · iovisor/bcc"}