{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":561621677,"defaultBranch":"master","name":"perf-event","ownerLogin":"Phantomical","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-11-04T05:06:59.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/14154943?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1716957573.0","currentOid":""},"activityList":{"items":[{"before":"118c8588c126b6b3c322e389a937ee1157f007ff","after":null,"ref":"refs/heads/update-manpage-links","pushedAt":"2024-05-29T04:39:33.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"}},{"before":"d8c1f3343ee3ef0d612c46a219520503d1944b89","after":"b23527b3aa06a9b658590300d92ee7e4c55ac7a7","ref":"refs/heads/master","pushedAt":"2024-05-29T04:39:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Update all manpage links to point to mankier.com (#52)\n\nman7.org is great but hasn't been updated in a few years. Most manpages\r\ndon't really change that often so this usually doesn't matter that much\r\nbut the perf_event_open manpage changes fairly frequently. This means\r\nthat the manpage at man7.org is missing a few options and will continue\r\nto get worse as time goes on.\r\n\r\nmankier.com seems to be reliably updated to the most recent kernel\r\nversion and has been going for about a decade now so it should be\r\nreliable enough to link to from the documentation.","shortMessageHtmlLink":"Update all manpage links to point to mankier.com (#52)"}},{"before":null,"after":"118c8588c126b6b3c322e389a937ee1157f007ff","ref":"refs/heads/update-manpage-links","pushedAt":"2024-05-28T09:07:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Update all manpage links to point to mankier.com\n\nman7.org is great but hasn't been updated in a few years. Most manpages\ndon't really change that often so this usually doesn't matter that much\nbut the perf_event_open manpage changes fairly frequently. This means\nthat the manpage at man7.org is missing a few options and will continue\nto get worse as time goes on.\n\nmankier.com seems to be reliably updated to the most recent kernel\nversion and has been going for about a decade now so it should be\nreliable enough to link to from the documentation.","shortMessageHtmlLink":"Update all manpage links to point to mankier.com"}},{"before":null,"after":"3a1cb797d79bc47312ef247cf0eadfee62665c41","ref":"refs/heads/remove-hooks","pushedAt":"2024-05-28T08:54:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Remove the hooks module entirely\n\nThese were originally added (in the perf_event crate) as a way to mock\nout the perf_event_open syscall and related ioctls for testing purposes.\nThe problem ends up being that perf_event_open is a really complicated\nsyscall. Writing a mock for most behaviour ends up being extremely hard\nto do.\n\nI haven't managed to find a use case for this module and, according to\nsourcegraph, neither has anybody else. As such, I think removing it is\nthe right thing to do. This is a breaking change.\n\nSome notes on what makes mocking the system API so hard\n-------------------------------------------------------\nThe hooks API allows a test to mock\n- the perf_event_open syscall, and,\n- all ioctls involved in modifying the resulting fd\n\nHowever, actually using the API mostly involves:\n- reading from the returned fd to read the counter\n- mmaping the returned fd to access the sampling ringbuffer\n- interacting with said ringbuffer\n\nThe main features of this crate are:\n- A builder API to configure the perf_event_attr struct before calling\n the perf_event_open syscall\n- A wrapper around the returned fd to make reading from it easier, and,\n- A wrapper around the returned fd + the mmaped ring buffer to read\n records from the kernel ringbuffer (+ a few extras)\n\nOf the 3 features, the only one that can really be usefully tested with\nthe mocked hooks module is the second. The 1st can only be usefully\ntested against the kernel itself and the 3rd is too complicated to\nactually make a mock for. However, it is really quite easy to write some\nfor the 2nd feature that work on any machine, which kinda gets rid of\nthe whole point of mocking them in the first place.\n\nThe _one_ exception is that github actions completely blocks the\nperf_event_open API for some reason and mocking it could allow a few\ntests to run in CI. While this is true, it's not incredibly useful since\nthe tests that could actually run are rather limited. It is more useful\nto have contributors run the unit tests on their own machines before\nmaking the PR instead.","shortMessageHtmlLink":"Remove the hooks module entirely"}},{"before":"f4d8f0b0ffaa57e4d1af08612caf7a4b18087e24","after":null,"ref":"refs/heads/group-exports","pushedAt":"2024-05-28T08:30:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"}},{"before":"3beb77428460d22a14ccfc104ce59b67c15472ba","after":"d8c1f3343ee3ef0d612c46a219520503d1944b89","ref":"refs/heads/master","pushedAt":"2024-05-28T08:29:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Group exports via rustfmt std-extern-crate (#50)","shortMessageHtmlLink":"Group exports via rustfmt std-extern-crate (#50)"}},{"before":"da5cc0f65aa430aae62fe642be6e1a021d2522b5","after":null,"ref":"refs/heads/builder-config-event","pushedAt":"2024-05-28T08:29:21.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"}},{"before":"4cb9fa1f24cd6047c03c3eaafc1cea1fb0cff645","after":"3beb77428460d22a14ccfc104ce59b67c15472ba","ref":"refs/heads/master","pushedAt":"2024-05-28T08:29:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Allow reconfiguring the event within the builder (#49)","shortMessageHtmlLink":"Allow reconfiguring the event within the builder (#49)"}},{"before":"74eec07255a273ff3604b8baa8078f723f1619c1","after":"f4d8f0b0ffaa57e4d1af08612caf7a4b18087e24","ref":"refs/heads/group-exports","pushedAt":"2024-05-28T08:28:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Group exports via rustfmt std-extern-crate","shortMessageHtmlLink":"Group exports via rustfmt std-extern-crate"}},{"before":null,"after":"74eec07255a273ff3604b8baa8078f723f1619c1","ref":"refs/heads/group-exports","pushedAt":"2024-05-28T08:26:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Group exports via rustfmt std-extern-crate","shortMessageHtmlLink":"Group exports via rustfmt std-extern-crate"}},{"before":"3b318b3524d2cc221946c0005a70185b78d72a1d","after":"da5cc0f65aa430aae62fe642be6e1a021d2522b5","ref":"refs/heads/builder-config-event","pushedAt":"2024-05-28T08:21:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Allow reconfiguring the event within the builder","shortMessageHtmlLink":"Allow reconfiguring the event within the builder"}},{"before":null,"after":"3b318b3524d2cc221946c0005a70185b78d72a1d","ref":"refs/heads/builder-config-event","pushedAt":"2024-05-28T08:18:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Allow reconfiguring the event within the builder","shortMessageHtmlLink":"Allow reconfiguring the event within the builder"}},{"before":"5b7a928e56844959c29736fbd4d69e926a7daa61","after":"8af965ecc9bc092b798d0e34f46e4d975cb25ef6","ref":"refs/heads/bindings-cleanup","pushedAt":"2024-05-27T21:11:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Avoid generating bindings for non-perf types and constants\n\nThe current way of generating bindings via bindgen creates entries for\nany type or constant that is reachable when including the headers listed\nin wrapper.h. In addition to the perf-related structs we care about,\nthis includes:\n- A variety of unrelated kernel API types\n- A bunch of constants used as implementation details for making ioctls\n- A constant for every single syscall number\n- ... and more besides\n\nThere is no reason to include these in the generated bindings. Once\npresent, however, removing or changing them becomes a breaking change.\nThis is a one-shot change that changes the generation to only keep the\nrelevant structs.\n\nThis is a breaking change and would require a perf-event-open-sys2\nv6.0.0.","shortMessageHtmlLink":"Avoid generating bindings for non-perf types and constants"}},{"before":null,"after":"5b7a928e56844959c29736fbd4d69e926a7daa61","ref":"refs/heads/bindings-cleanup","pushedAt":"2024-05-27T04:48:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Avoid generating bindings for non-perf types and constants\n\nThe current way of generating bindings via bindgen creates entries for\nany type or constant that is reachable when including the headers listed\nin wrapper.h. In addition to the perf-related structs we care about,\nthis includes:\n- A variety of unrelated kernel API types\n- A bunch of constants used as implementation details for making ioctls\n- A constant for every single syscall number\n- ... and more besides\n\nThere is no reason to include these in the generated bindings. Once\npresent, however, removing or changing them becomes a breaking change.\nThis is a one-shot change that changes the generation to only keep the\nrelevant structs.\n\nThis is a breaking change and would require a perf-event-open-sys2\nv6.0.0.","shortMessageHtmlLink":"Avoid generating bindings for non-perf types and constants"}},{"before":"cf0a3e837226db54d8d9c35250fc831c6b493834","after":null,"ref":"refs/heads/access-fields-directly","pushedAt":"2024-05-27T04:35:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"}},{"before":"d3313872d10838d165f49734732d666a24fd3f08","after":"4cb9fa1f24cd6047c03c3eaafc1cea1fb0cff645","ref":"refs/heads/master","pushedAt":"2024-05-27T04:35:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Access perf_event_attr fields directly instead of via anon fields (#47)\n\nNow that perf-event-open-sys2 supports directly accessing fields within\r\ninline unions in perf_event_attr we can take advantage of that to\r\nperform some cleanup on internal code in this crate.","shortMessageHtmlLink":"Access perf_event_attr fields directly instead of via anon fields (#47)"}},{"before":null,"after":"cf0a3e837226db54d8d9c35250fc831c6b493834","ref":"refs/heads/access-fields-directly","pushedAt":"2024-05-27T04:26:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Access perf_event_attr fields directly instead of via anon fields\n\nNow that perf-event-open-sys2 supports directly accessing fields within\ninline unions in perf_event_attr we can take advantage of that to\nperform some cleanup on internal code in this crate.","shortMessageHtmlLink":"Access perf_event_attr fields directly instead of via anon fields"}},{"before":"86bbde3b1ff0788c6352608167c904dde279239a","after":"d3313872d10838d165f49734732d666a24fd3f08","ref":"refs/heads/master","pushedAt":"2024-05-27T04:15:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Release sys-v5.0.4","shortMessageHtmlLink":"Release sys-v5.0.4"}},{"before":"90318b98c92af25ce5627e4a8feb46863bd4484e","after":null,"ref":"refs/heads/sys-attr-direct-access","pushedAt":"2024-05-27T04:08:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"}},{"before":"197cb210ab85793bc07ccda33c615e4f7931cde6","after":"86bbde3b1ff0788c6352608167c904dde279239a","ref":"refs/heads/master","pushedAt":"2024-05-27T04:08:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Allow direct access to inline union fields on perf_event_attr (#46)\n\nThis means that future changes made to the C perf_event_attr struct\r\nwhich replace existing fields with inline unions can continue to be\r\nnon-breaking changes to the crate.\r\n\r\nFurthermore, it is generally much more convenient to directly access the\r\nrelevant fields instead of needing to go through the __bindgen_anon_x\r\nfield first.","shortMessageHtmlLink":"Allow direct access to inline union fields on perf_event_attr (#46)"}},{"before":null,"after":"90318b98c92af25ce5627e4a8feb46863bd4484e","ref":"refs/heads/sys-attr-direct-access","pushedAt":"2024-05-27T04:05:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Allow direct access to inline union fields on perf_event_attr\n\nThis means that future changes made to the C perf_event_attr struct\nwhich replace existing fields with inline unions can continue to be\nnon-breaking changes to the crate.\n\nFurthermore, it is generally much more convenient to directly access the\nrelevant fields instead of needing to go through the __bindgen_anon_x\nfield first.","shortMessageHtmlLink":"Allow direct access to inline union fields on perf_event_attr"}},{"before":"e469181900bcfd7f2195e09bb1b3698c31fcaab2","after":null,"ref":"refs/heads/update-sys","pushedAt":"2024-05-26T23:04:34.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"}},{"before":"36f7921463ee0fe025b2820cca3f7083e48adbba","after":"197cb210ab85793bc07ccda33c615e4f7931cde6","ref":"refs/heads/master","pushedAt":"2024-05-26T23:03:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Generate bindings against linux 6.9.2 (#45)\n\nThis results in 3 constants being deleted:\r\n- TYPE_INST\r\n- TYPE_DATA\r\n- TYPE_MAX\r\n\r\nThese were not used in any other emitted APIs for the crate so they\r\n_should_ be ok to remove in a patch version.","shortMessageHtmlLink":"Generate bindings against linux 6.9.2 (#45)"}},{"before":null,"after":"e469181900bcfd7f2195e09bb1b3698c31fcaab2","ref":"refs/heads/update-sys","pushedAt":"2024-05-26T23:02:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Generate bindings against linux 6.9.2\n\nThis results in 3 constants being deleted:\n- TYPE_INST\n- TYPE_DATA\n- TYPE_MAX\n\nThese were not used in any other emitted APIs for the crate so they\n_should_ be ok to remove in a patch version.","shortMessageHtmlLink":"Generate bindings against linux 6.9.2"}},{"before":"69994af5a92a343271e3ed5ceab237ff77d829e6","after":"36f7921463ee0fe025b2820cca3f7083e48adbba","ref":"refs/heads/master","pushedAt":"2024-05-26T22:48:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"v0.7.3","shortMessageHtmlLink":"v0.7.3"}},{"before":"6c897903dea82ae96d040b4b75ea4ddcc3151914","after":"69994af5a92a343271e3ed5ceab237ff77d829e6","ref":"refs/heads/master","pushedAt":"2024-05-26T22:44:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Add builder convenience method to Group (#44)\n\n* Add builder convenience method to Group\r\n* Add more detailed documentation on `Group::builder`\r\n* Use `Group::builder` within `Group::new`\r\n\r\n---------\r\n\r\nCo-authored-by: Phantomical ","shortMessageHtmlLink":"Add builder convenience method to Group (#44)"}},{"before":"18d4b69ac8cef48c2a1556112c1788aca3d994db","after":"6c897903dea82ae96d040b4b75ea4ddcc3151914","ref":"refs/heads/master","pushedAt":"2024-05-26T22:16:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Update nix to 0.29","shortMessageHtmlLink":"Update nix to 0.29"}},{"before":"a7f38810cac532f38fb0c51ba70bd7a1f2ff5065","after":null,"ref":"refs/heads/fix-target_arch-test","pushedAt":"2024-05-21T08:25:58.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"}},{"before":"78797bd77c392f4419ced7923e56977323067673","after":"18d4b69ac8cef48c2a1556112c1788aca3d994db","ref":"refs/heads/master","pushedAt":"2024-05-21T08:25:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Fix a conditional in the dynamic_msr_event test (#43)","shortMessageHtmlLink":"Fix a conditional in the dynamic_msr_event test (#43)"}},{"before":null,"after":"a7f38810cac532f38fb0c51ba70bd7a1f2ff5065","ref":"refs/heads/fix-target_arch-test","pushedAt":"2024-05-21T08:24:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Phantomical","name":"Sean Lynch","path":"/Phantomical","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14154943?s=80&v=4"},"commit":{"message":"Fix a conditional in the dynamic_msr_event test","shortMessageHtmlLink":"Fix a conditional in the dynamic_msr_event test"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVoR1sAA","startCursor":null,"endCursor":null}},"title":"Activity ยท Phantomical/perf-event"}