{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":486257527,"defaultBranch":"main","name":"libbpfgo","ownerLogin":"javierhonduco","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2022-04-27T15:51:16.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/959128?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1691480053.0","currentOid":""},"activityList":{"items":[{"before":"d668e7281c6256f6f60b924f1a139b902defc80f","after":null,"ref":"refs/heads/add-map-reuse","pushedAt":"2023-08-08T07:34:13.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"}},{"before":"f0374b44a5f39a51db46c83b53347de568cfdb2e","after":"d668e7281c6256f6f60b924f1a139b902defc80f","ref":"refs/heads/add-map-reuse","pushedAt":"2023-08-03T17:41:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"},"commit":{"message":"Add BPF map reuse function\n\nWrap `bpf_map__reuse_fd` to reuse a BPF map accross BPF programs. This\nis useful in complex programs that long chains of calls, for example,\nvia `bpf_tail_call` that may be loaded in different programs and share\nstate via reused maps.\n\nWhy is this useful\n=================\n\nOur global state map, called `heap` is shared by multiple programs.\nMap reuse will soon become a load loading functionality for Parca Agent.\n\nTest Plan\n=========\n\nAdded selftest +\n\n```\n[javierhonduco@fedora parca-agent]$ sudo bpftool map | grep heap\n3403: percpu_array name heap flags 0x0\n```\n\n```\n2812: perf_event name walk_user_stacktrace_impl tag 25cb7e352f197144 gpl\n loaded_at 2023-08-01T16:06:01+0100 uid 0\n xlated 7984B jited 4827B memlock 12288B map_ids 3399,3411,3401,3407,3400,3408,3409,3402,3406,3405,3403\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2814: perf_event name profile_cpu tag 3f2053ff90208ef1 gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 4368B jited 2850B memlock 8192B map_ids 3411,3404,3399,3401,3408,3409,3405,3407,3403,3402\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2816: perf_event name walk_ruby_stack tag 97bb3ee23c47e22d gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 87600B jited 56572B memlock 98304B map_ids 3413,3414,3419,3415,3399,3403,3420,3417,3418\n btf_id 1994\n pids parca-agent(1049424)\n```\n\nWe are thoroughly testing it, across multiple kernels and with ASAN\nenabled, too.\n\nIf there were any problems in the future we will quickly notice them and\nwill be happy to submit bugfixes.\n\nSigned-off-by: Francisco Javier Honduvilla Coto ","shortMessageHtmlLink":"Add BPF map reuse function"}},{"before":"4339c9779ccca9944dfd9c21814aa1ad51b6c97e","after":"f0374b44a5f39a51db46c83b53347de568cfdb2e","ref":"refs/heads/add-map-reuse","pushedAt":"2023-08-03T17:40:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"},"commit":{"message":"Add BPF map reuse function\n\nWrap `bpf_map__reuse_fd` to reuse a BPF map accross BPF programs. This\nis useful in complex programs that long chains of calls, for example,\nvia `bpf_tail_call` that may be loaded in different programs and share\nstate via reused maps.\n\nWhy is this useful\n=================\n\nOur global state map, called `heap` is shared by multiple programs.\nMap reuse will soon become a load loading functionality for Parca Agent.\n\nTest Plan\n=========\n\nAdded selftest +\n\n```\n[javierhonduco@fedora parca-agent]$ sudo bpftool map | grep heap\n3403: percpu_array name heap flags 0x0\n```\n\n```\n2812: perf_event name walk_user_stacktrace_impl tag 25cb7e352f197144 gpl\n loaded_at 2023-08-01T16:06:01+0100 uid 0\n xlated 7984B jited 4827B memlock 12288B map_ids 3399,3411,3401,3407,3400,3408,3409,3402,3406,3405,3403\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2814: perf_event name profile_cpu tag 3f2053ff90208ef1 gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 4368B jited 2850B memlock 8192B map_ids 3411,3404,3399,3401,3408,3409,3405,3407,3403,3402\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2816: perf_event name walk_ruby_stack tag 97bb3ee23c47e22d gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 87600B jited 56572B memlock 98304B map_ids 3413,3414,3419,3415,3399,3403,3420,3417,3418\n btf_id 1994\n pids parca-agent(1049424)\n```\n\nWe are thoroughly testing it, across multiple kernels and with ASAN\nenabled, too.\n\nIf there were any problems in the future we will quickly notice them and\nwill be happy to submit bugfixes.\n\nSigned-off-by: Francisco Javier Honduvilla Coto ","shortMessageHtmlLink":"Add BPF map reuse function"}},{"before":"dc8d5c1c06c9bae2b59beda408a126c44d695d28","after":"4339c9779ccca9944dfd9c21814aa1ad51b6c97e","ref":"refs/heads/add-map-reuse","pushedAt":"2023-08-03T17:37:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"},"commit":{"message":"Add BPF map reuse function\n\nWrap `bpf_map__reuse_fd` to reuse a BPF map accross BPF programs. This\nis useful in complex programs that long chains of calls, for example,\nvia `bpf_tail_call` that may be loaded in different programs and share\nstate via reused maps.\n\nWhy is this useful\n=================\n\nOur global state map, called `heap` is shared by multiple programs.\nMap reuse will soon become a load loading functionality for Parca Agent.\n\nTest Plan\n=========\n\nAdded selftest +\n\n```\n[javierhonduco@fedora parca-agent]$ sudo bpftool map | grep heap\n3403: percpu_array name heap flags 0x0\n```\n\n```\n2812: perf_event name walk_user_stacktrace_impl tag 25cb7e352f197144 gpl\n loaded_at 2023-08-01T16:06:01+0100 uid 0\n xlated 7984B jited 4827B memlock 12288B map_ids 3399,3411,3401,3407,3400,3408,3409,3402,3406,3405,3403\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2814: perf_event name profile_cpu tag 3f2053ff90208ef1 gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 4368B jited 2850B memlock 8192B map_ids 3411,3404,3399,3401,3408,3409,3405,3407,3403,3402\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2816: perf_event name walk_ruby_stack tag 97bb3ee23c47e22d gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 87600B jited 56572B memlock 98304B map_ids 3413,3414,3419,3415,3399,3403,3420,3417,3418\n btf_id 1994\n pids parca-agent(1049424)\n```\n\nWe are thoroughly testing it, across multiple kernels and with ASAN\nenabled, too.\n\nIf there were any problems in the future we will quickly notice them and\nwill be happy to submit bugfixes.\n\nSigned-off-by: Francisco Javier Honduvilla Coto ","shortMessageHtmlLink":"Add BPF map reuse function"}},{"before":"0d029ac68a225171520b3fc0846249a2f9453fb4","after":"dc8d5c1c06c9bae2b59beda408a126c44d695d28","ref":"refs/heads/add-map-reuse","pushedAt":"2023-08-03T17:37:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"},"commit":{"message":"Add BPF map reuse function\n\nWrap `bpf_map__reuse_fd` to reuse a BPF map accross BPF programs. This\nis useful in complex programs that long chains of calls, for example,\nvia `bpf_tail_call` that may be loaded in different programs and share\nstate via reused maps.\n\nWhy is this useful\n=================\n\nOur global state map, called `heap` is shared by multiple programs.\nMap reuse will soon become a load loading functionality for Parca Agent.\n\nTest Plan\n=========\n\nAdded selftest +\n\n```\n[javierhonduco@fedora parca-agent]$ sudo bpftool map | grep heap\n3403: percpu_array name heap flags 0x0\n```\n\n```\n2812: perf_event name walk_user_stacktrace_impl tag 25cb7e352f197144 gpl\n loaded_at 2023-08-01T16:06:01+0100 uid 0\n xlated 7984B jited 4827B memlock 12288B map_ids 3399,3411,3401,3407,3400,3408,3409,3402,3406,3405,3403\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2814: perf_event name profile_cpu tag 3f2053ff90208ef1 gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 4368B jited 2850B memlock 8192B map_ids 3411,3404,3399,3401,3408,3409,3405,3407,3403,3402\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2816: perf_event name walk_ruby_stack tag 97bb3ee23c47e22d gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 87600B jited 56572B memlock 98304B map_ids 3413,3414,3419,3415,3399,3403,3420,3417,3418\n btf_id 1994\n pids parca-agent(1049424)\n```\n\nWe are thoroughly testing it, across multiple kernels and with ASAN\nenabled, too.\n\nIf there were any problems in the future we will quickly notice them and\nwill be happy to submit bugfixes.\n\nSigned-off-by: Francisco Javier Honduvilla Coto ","shortMessageHtmlLink":"Add BPF map reuse function"}},{"before":"d3578c49d9362dba3053ef3c29c61c2bae539eef","after":"0d029ac68a225171520b3fc0846249a2f9453fb4","ref":"refs/heads/add-map-reuse","pushedAt":"2023-08-03T17:37:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"},"commit":{"message":"Add BPF map reuse function\n\nWrap `bpf_map__reuse_fd` to reuse a BPF map accross BPF programs. This\nis useful in complex programs that long chains of calls, for example,\nvia `bpf_tail_call` that may be loaded in different programs and share\nstate via reused maps.\n\nWhy is this useful\n=================\n\nOur global state map, called `heap` is shared by multiple programs.\nMap reuse will soon become a load loading functionality for Parca Agent.\n\nTest Plan\n=========\n\nAdded selftest +\n\n```\n[javierhonduco@fedora parca-agent]$ sudo bpftool map | grep heap\n3403: percpu_array name heap flags 0x0\n```\n\n```\n2812: perf_event name walk_user_stacktrace_impl tag 25cb7e352f197144 gpl\n loaded_at 2023-08-01T16:06:01+0100 uid 0\n xlated 7984B jited 4827B memlock 12288B map_ids 3399,3411,3401,3407,3400,3408,3409,3402,3406,3405,3403\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2814: perf_event name profile_cpu tag 3f2053ff90208ef1 gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 4368B jited 2850B memlock 8192B map_ids 3411,3404,3399,3401,3408,3409,3405,3407,3403,3402\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2816: perf_event name walk_ruby_stack tag 97bb3ee23c47e22d gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 87600B jited 56572B memlock 98304B map_ids 3413,3414,3419,3415,3399,3403,3420,3417,3418\n btf_id 1994\n pids parca-agent(1049424)\n```\n\nWe are thoroughly testing it, across multiple kernels and with ASAN\nenabled, too.\n\nIf there were any problems in the future we will quickly notice them and\nwill be happy to submit bugfixes.\n\nSigned-off-by: Francisco Javier Honduvilla Coto ","shortMessageHtmlLink":"Add BPF map reuse function"}},{"before":"7ea3e99dda08db3e6022e600f6f67f5576b30eda","after":"d3578c49d9362dba3053ef3c29c61c2bae539eef","ref":"refs/heads/add-map-reuse","pushedAt":"2023-08-03T17:34:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"},"commit":{"message":"Add BPF map reuse function\n\nWrap `bpf_map__reuse_fd` to reuse a BPF map accross BPF programs. This\nis useful in complex programs that long chains of calls, for example,\nvia `bpf_tail_call` that may be loaded in different programs and share\nstate via reused maps.\n\nWhy is this useful\n=================\n\nOur global state map, called `heap` is shared by multiple programs.\nMap reuse will soon become a load loading functionality for Parca Agent.\n\nTest Plan\n=========\n\nAdded selftest +\n\n```\n[javierhonduco@fedora parca-agent]$ sudo bpftool map | grep heap\n3403: percpu_array name heap flags 0x0\n```\n\n```\n2812: perf_event name walk_user_stacktrace_impl tag 25cb7e352f197144 gpl\n loaded_at 2023-08-01T16:06:01+0100 uid 0\n xlated 7984B jited 4827B memlock 12288B map_ids 3399,3411,3401,3407,3400,3408,3409,3402,3406,3405,3403\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2814: perf_event name profile_cpu tag 3f2053ff90208ef1 gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 4368B jited 2850B memlock 8192B map_ids 3411,3404,3399,3401,3408,3409,3405,3407,3403,3402\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2816: perf_event name walk_ruby_stack tag 97bb3ee23c47e22d gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 87600B jited 56572B memlock 98304B map_ids 3413,3414,3419,3415,3399,3403,3420,3417,3418\n btf_id 1994\n pids parca-agent(1049424)\n```\n\nWe are thoroughly testing it, across multiple kernels and with ASAN\nenabled, too.\n\nIf there were any problems in the future we will quickly notice them and\nwill be happy to submit bugfixes.\n\nSigned-off-by: Francisco Javier Honduvilla Coto ","shortMessageHtmlLink":"Add BPF map reuse function"}},{"before":"c1531f25986d3d6d07cdc77c800921a561f62228","after":"7ea3e99dda08db3e6022e600f6f67f5576b30eda","ref":"refs/heads/add-map-reuse","pushedAt":"2023-08-01T15:08:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"},"commit":{"message":"Add BPF map reuse function\n\nWrap `bpf_map__reuse_fd` to reuse a BPF map accross BPF programs. This\nis useful in complex programs that long chains of calls, for example,\nvia `bpf_tail_call` that may be loaded in different programs and share\nstate via reused maps.\n\nTest Plan\n=========\n\nOur global state map, called `heap` shared by multiple programs\n\n```\n[javierhonduco@fedora parca-agent]$ sudo bpftool map | grep heap\n3403: percpu_array name heap flags 0x0\n```\n\n```\n2812: perf_event name walk_user_stacktrace_impl tag 25cb7e352f197144 gpl\n loaded_at 2023-08-01T16:06:01+0100 uid 0\n xlated 7984B jited 4827B memlock 12288B map_ids 3399,3411,3401,3407,3400,3408,3409,3402,3406,3405,3403\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2814: perf_event name profile_cpu tag 3f2053ff90208ef1 gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 4368B jited 2850B memlock 8192B map_ids 3411,3404,3399,3401,3408,3409,3405,3407,3403,3402\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2816: perf_event name walk_ruby_stack tag 97bb3ee23c47e22d gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 87600B jited 56572B memlock 98304B map_ids 3413,3414,3419,3415,3399,3403,3420,3417,3418\n btf_id 1994\n pids parca-agent(1049424)\n```\n\nMap reuse will soon become a load loading functionality for Parca Agent.\nWe are thoroughly testing it, across multiple kernels and with ASAN\nenabled, too.\n\nIf there were any problems in the future we will quickly notice them and\nwill be happy to submit bugfixes.\n\nSigned-off-by: Francisco Javier Honduvilla Coto ","shortMessageHtmlLink":"Add BPF map reuse function"}},{"before":"2ebdd6fefd6101967558c91872e65e04e0878e98","after":"c1531f25986d3d6d07cdc77c800921a561f62228","ref":"refs/heads/add-map-reuse","pushedAt":"2023-08-01T15:07:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"},"commit":{"message":"Add BPF map reuse function\n\nWrap `bpf_map__reuse_fd` to reuse a BPF map accross BPF programs. This\nis useful in complex programs that long chains of calls, for example,\nvia `bpf_tail_call` that may be loaded in different programs and share\nstate via reused maps.\n\nTest Plan\n=========\n\nOur global state map, called `heap` shared by multiple\n```\n[javierhonduco@fedora parca-agent]$ sudo bpftool map | grep heap\n3403: percpu_array name heap flags 0x0\n```\n\n```\n2812: perf_event name walk_user_stacktrace_impl tag 25cb7e352f197144 gpl\n loaded_at 2023-08-01T16:06:01+0100 uid 0\n xlated 7984B jited 4827B memlock 12288B map_ids 3399,3411,3401,3407,3400,3408,3409,3402,3406,3405,3403\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2814: perf_event name profile_cpu tag 3f2053ff90208ef1 gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 4368B jited 2850B memlock 8192B map_ids 3411,3404,3399,3401,3408,3409,3405,3407,3403,3402\n btf_id 1993\n pids parca-agent(1049424)\n metadata:\n name = \"parca-agent (https://github.com/parca-dev/parca-agent)\"\n2816: perf_event name walk_ruby_stack tag 97bb3ee23c47e22d gpl\n loaded_at 2023-08-01T16:06:02+0100 uid 0\n xlated 87600B jited 56572B memlock 98304B map_ids 3413,3414,3419,3415,3399,3403,3420,3417,3418\n btf_id 1994\n pids parca-agent(1049424)\n```\n\nMap reuse will soon become a load loading functionality for Parca Agent.\nWe are thoroughly testing it, across multiple kernels and with ASAN\nenabled, too.\n\nIf there were any problems in the future we will quickly notice them and\nwill be happy to submit bugfixes.\n\nSigned-off-by: Francisco Javier Honduvilla Coto ","shortMessageHtmlLink":"Add BPF map reuse function"}},{"before":"d1fd45472b9ce0bb5b8f7eb1c450b910eb0ed5b3","after":"2ebdd6fefd6101967558c91872e65e04e0878e98","ref":"refs/heads/add-map-reuse","pushedAt":"2023-08-01T15:03:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"},"commit":{"message":"Add BPF map reuse function\n\nWrap `bpf_map__reuse_fd` to reuse a BPF map accross BPF programs. This\nis useful in complex programs that long chains of calls, for example,\nvia `bpf_tail_call` that may be loaded in different programs and share\nstate via reused maps.\n\nTest Plan\n=========\n\nMap reuse will soon become a load loading functionality for Parca Agent.\nWe are thoroughly testing it, across multiple kernels and with ASAN\nenabled, too.\n\nIf there were any problems in the future we will quickly notice them and\nwill be happy to submit bugfixes.\n\nSigned-off-by: Francisco Javier Honduvilla Coto ","shortMessageHtmlLink":"Add BPF map reuse function"}},{"before":null,"after":"d1fd45472b9ce0bb5b8f7eb1c450b910eb0ed5b3","ref":"refs/heads/add-map-reuse","pushedAt":"2023-08-01T15:02:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"},"commit":{"message":"Add BPF map reuse function\n\nWrap `bpf_map__reuse_fd` to reuse a BPF map accross BPF programs. This\nis useful in complex programs that long chains of calls, for example,\nvia `bpf_tail_call` that may be loaded in different programs and share\nstate via reused maps.\n\nTest Plan\n=========\n\nMap reuse will soon become a load loading functionality for Parca Agent.\nWe are thoroughly testing it, across multiple kernels and with ASAN\nenabled, too.\n\nIf there were any problems in the future we will quickly notice them and\nwill be happy to submit bugfixes.\n\nSigned-off-by: Francisco Javier Honduvilla Coto ","shortMessageHtmlLink":"Add BPF map reuse function"}},{"before":"d6722098ff9a4feb85a0c6cc8a3d52a79c1a8b2e","after":null,"ref":"refs/heads/add-num-possible-cpus","pushedAt":"2023-06-01T07:53:17.789Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"}},{"before":null,"after":"d6722098ff9a4feb85a0c6cc8a3d52a79c1a8b2e","ref":"refs/heads/add-num-possible-cpus","pushedAt":"2023-05-31T10:46:22.486Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"},"commit":{"message":"Expose libbpf_num_possible_cpus\n\nTo fetch the number of \"possible\" (`/sys/devices/system/cpu/possible`)\nCPUs.\n\nThis is needed in various PERCPU structures to compute the value size.\nMore details in https://github.com/parca-dev/parca-agent/issues/1696#issuecomment-1568736923\n\nSigned-off-by: Francisco Javier Honduvilla Coto ","shortMessageHtmlLink":"Expose libbpf_num_possible_cpus"}},{"before":"6f33a8149012b7caffac9f9b64915b3a91e706ca","after":null,"ref":"refs/heads/fix-double-free-new-module","pushedAt":"2023-05-11T13:12:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"}},{"before":"6d77c03e16aaa4f2b242972a578705f5286e4d96","after":"6f33a8149012b7caffac9f9b64915b3a91e706ca","ref":"refs/heads/fix-double-free-new-module","pushedAt":"2023-05-09T12:29:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"},"commit":{"message":"Fix double-free in `NewModuleFromBufferArgs`\n\nIn\nhttps://github.com/aquasecurity/libbpfgo/commit/0238ec325a967ca48d8958f449e236b5bc432263\nthe freeing of C strings was changed to use defers. This can cause a\ndouble-free, which in the best case it will produce a crash. The reason\nwhy this happens is that the memory address at `defer` time is captured\nfor later execution. If `KConfigFilePath` is less than 3, it was being\nfreed and set to NULL. Once the defer executes on function return, the\nsame address we already freed will be passed again.\n\nWe observed this while upgrading libbpfgo in Parca Agent\n(https://github.com/parca-dev/parca-agent/pull/1599).\n\nTest Plan\n=========\n\nVerified it's a double free with ASAN\n\n```\n=================================================================\n==171270==ERROR: AddressSanitizer: attempting double-free on 0x602000000010 in thread T14:\n #0 0x4d6e68 in __interceptor_free.part.0 asan_malloc_linux.cpp.o\n #1 0x3004be2 in _cgo_38fdf0a0bedf_Cfunc_free (/home/javierhonduco/code/parca-agent/dist/parca-agent+0x3004be2) (BuildId: aebc1e250e9da366a49de9206c528fb67b730e0b)\n #2 0x58bac3 in runtime.asmcgocall.abi0 runtime/asm_amd64.s:848\n\n0x602000000010 is located 0 bytes inside of 1-byte region [0x602000000010,0x602000000011)\nfreed by thread T14 here:\n #0 0x4d6e68 in __interceptor_free.part.0 asan_malloc_linux.cpp.o\n #1 0x3004be2 in _cgo_38fdf0a0bedf_Cfunc_free (/home/javierhonduco/code/parca-agent/dist/parca-agent+0x3004be2) (BuildId: aebc1e250e9da366a49de9206c528fb67b730e0b)\n #2 0x58bac3 in runtime.asmcgocall.abi0 runtime/asm_amd64.s:848\n\npreviously allocated by thread T14 here:\n #0 0x4d7e37 in __interceptor_malloc (/home/javierhonduco/code/parca-agent/dist/parca-agent+0x4d7e37) (BuildId: aebc1e250e9da366a49de9206c528fb67b730e0b)\n #1 0x2ff3ff2 in _cgo_38fdf0a0bedf_Cfunc__Cmalloc (/home/javierhonduco/code/parca-agent/dist/parca-agent+0x2ff3ff2) (BuildId: aebc1e250e9da366a49de9206c528fb67b730e0b)\n #2 0x58bac3 in runtime.asmcgocall.abi0 runtime/asm_amd64.s:848\n```\n\nAnd that there are no issues with this patch applied, both while running\nthe Agent with and without ASAN as well as while running the cpu\nprofiling integration tests which exercise this code path.\n\nSigned-off-by: Francisco Javier Honduvilla Coto ","shortMessageHtmlLink":"Fix double-free in NewModuleFromBufferArgs"}},{"before":null,"after":"01206651f844e3eb9e6e537c46f5014653a2e658","ref":"refs/heads/fix-double-free-new-module","pushedAt":"2023-05-09T11:08:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"},"commit":{"message":"Fix double-free in `NewModuleFromBufferArgs`\n\nIn\nhttps://github.com/aquasecurity/libbpfgo/commit/0238ec325a967ca48d8958f449e236b5bc432263\nthe freeing of C strings was changed to use defers. This can cause a\ndouble-free, which in the best case it will produce a crash. The reason\nwhy this happens is that the memory address at `defer` time is captured\nfor later execution. If `KConfigFilePath` is less than 3, it was being\nfreed and set to NULL. Once the defer executes on function return, the\nsame address we already freed will be passed again.\n\nWe observed this while upgrading libbpfgo in Parca Agent\n(https://github.com/parca-dev/parca-agent/pull/1599).\n\nTest Plan\n=========\n\nVerified it's a double free with ASAN\n\n```\n=================================================================\n==171270==ERROR: AddressSanitizer: attempting double-free on 0x602000000010 in thread T14:\n #0 0x4d6e68 in __interceptor_free.part.0 asan_malloc_linux.cpp.o\n #1 0x3004be2 in _cgo_38fdf0a0bedf_Cfunc_free (/home/javierhonduco/code/parca-agent/dist/parca-agent+0x3004be2) (BuildId: aebc1e250e9da366a49de9206c528fb67b730e0b)\n #2 0x58bac3 in runtime.asmcgocall.abi0 runtime/asm_amd64.s:848\n\n0x602000000010 is located 0 bytes inside of 1-byte region [0x602000000010,0x602000000011)\nfreed by thread T14 here:\n #0 0x4d6e68 in __interceptor_free.part.0 asan_malloc_linux.cpp.o\n #1 0x3004be2 in _cgo_38fdf0a0bedf_Cfunc_free (/home/javierhonduco/code/parca-agent/dist/parca-agent+0x3004be2) (BuildId: aebc1e250e9da366a49de9206c528fb67b730e0b)\n #2 0x58bac3 in runtime.asmcgocall.abi0 runtime/asm_amd64.s:848\n\npreviously allocated by thread T14 here:\n #0 0x4d7e37 in __interceptor_malloc (/home/javierhonduco/code/parca-agent/dist/parca-agent+0x4d7e37) (BuildId: aebc1e250e9da366a49de9206c528fb67b730e0b)\n #1 0x2ff3ff2 in _cgo_38fdf0a0bedf_Cfunc__Cmalloc (/home/javierhonduco/code/parca-agent/dist/parca-agent+0x2ff3ff2) (BuildId: aebc1e250e9da366a49de9206c528fb67b730e0b)\n #2 0x58bac3 in runtime.asmcgocall.abi0 runtime/asm_amd64.s:848\n```\n\nAnd that there are no issues with this patch applied, both while running\nthe Agent with and without ASAN as well as while running the cpu\nprofiling integration tests which exercise this code path.\n\nSigned-off-by: Francisco Javier Honduvilla Coto ","shortMessageHtmlLink":"Fix double-free in NewModuleFromBufferArgs"}},{"before":"911b27beafd12e4f16d90c21a82d9d2896ccc13f","after":null,"ref":"refs/heads/explicit-poll-timeout","pushedAt":"2023-04-03T19:39:29.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"}},{"before":"4d7e9f34883e5078639234c4786e367792e967bb","after":"911b27beafd12e4f16d90c21a82d9d2896ccc13f","ref":"refs/heads/explicit-poll-timeout","pushedAt":"2023-03-27T09:23:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"},"commit":{"message":"Add explicit timeout to perf + ring buffer polling\n\nRight now it's hardcoded to 300ms which might not work for every\nuse-case. Having it as a parameter allows users to decide their tradeoff\nbetween latency and overhead.\n\nSigned-off-by: Francisco Javier Honduvilla Coto ","shortMessageHtmlLink":"Add explicit timeout to perf + ring buffer polling"}},{"before":null,"after":"4d7e9f34883e5078639234c4786e367792e967bb","ref":"refs/heads/explicit-poll-timeout","pushedAt":"2023-03-27T09:23:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"javierhonduco","name":"Javier Honduvilla Coto","path":"/javierhonduco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/959128?s=80&v=4"},"commit":{"message":"Add explicit timeout to perf + ring buffer polling\n\nRight now it's hardcoded to 300ms which might not work for every\nuse-case. Having it as a parameter allows users to decide their tradeoff\nbetween latency and overhead.\n\nSigned-off-by: Francisco Javier Honduvilla Coto ","shortMessageHtmlLink":"Add explicit timeout to perf + ring buffer polling"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADZhashQA","startCursor":null,"endCursor":null}},"title":"Activity ยท javierhonduco/libbpfgo"}