Cherry pick changes to release/1.1#5092
Merged
Merged
Conversation
* Bump external/ebpf-verifier from `9590c97` to `e68a347` Bumps [external/ebpf-verifier](https://github.com/vbpf/ebpf-verifier) from `9590c97` to `e68a347`. - [Release notes](https://github.com/vbpf/ebpf-verifier/releases) - [Commits](vbpf/prevail@9590c97...e68a347) --- updated-dependencies: - dependency-name: external/ebpf-verifier dependency-version: e68a347b272323d2508c1774aaa71285a5fd42db dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> * Update per prevail breaking changes Signed-off-by: Dave Thaler <dthaler1968@gmail.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Dave Thaler <dthaler1968@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Dave Thaler <dthaler1968@gmail.com>
* add proposal doc * update doc * update doc * cr comments * implement extensible maps * patch * changes * fix build breaks * add unit tests * add program load tests * update tests, export epoch APIs * fix validation, add driver tests * add epoch api usage in unit tests * add array map * fix * add doc * update sample program, fix analysis failure * bugfix, add tests * add tests, fixes * fix * fix build break * fixes * cleanup * cleanup * fix asan build * add hash map to unit tests * add tests * fix tests * test code refactor * add tests * code cleanup * cleanup * backup * ebpfcore changes * update unit tests * fix * fix * bug fixes, fix tests * update driver tests * fix bad merge * fix memory leak * fix * add test files * fix * backup * fixes * fix * fixes * update doc, code cleanup * fix * fix * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix * fix * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fixes, cleanup * fix * fix * export epoch_enter,epoch_exit * add comments, code cleanup * fix * fix bad merge, update documentation * Apply suggestions from code review Co-authored-by: Dave Thaler <dthaler1968@gmail.com> * cr comments * Apply suggestions from code review Co-authored-by: Dave Thaler <dthaler1968@gmail.com> * cr comments * cr comments * update doc * Update docs/eBpfExtensions.md Co-authored-by: Dave Thaler <dthaler1968@gmail.com> * Update tests/end_to_end/end_to_end.cpp Co-authored-by: Dave Thaler <dthaler1968@gmail.com> * Update tests/end_to_end/end_to_end.cpp Co-authored-by: Dave Thaler <dthaler1968@gmail.com> * Update libs/execution_context/ebpf_maps.c Co-authored-by: Dave Thaler <dthaler1968@gmail.com> * Update tests/end_to_end/helpers.h Co-authored-by: Dave Thaler <dthaler1968@gmail.com> * Update tests/end_to_end/helpers.h Co-authored-by: Dave Thaler <dthaler1968@gmail.com> * Update include/ebpf_extension.h Co-authored-by: Dave Thaler <dthaler1968@gmail.com> * cr comment * cr comments --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Dave Thaler <dthaler1968@gmail.com>
Co-authored-by: Matthew Ige <maige@microsoft.com>
* wip perf array synchronous api * invoke lost cb in consume * remove bad test * add bpf program test to validate lost event counts * arg fix * fix cleanup * improve failure output * analyze fix * fixes * fix * fix test checks * analyze fix * test cleanup * feedback and doc updates * docs and feedback fix * feedback * cleanup fixes, test refactoring * analyze fix * test fix * fix test cleanup * fix errno handling, remove get_buffer * add comment for perf producer page * Add compile time asserts for perf array prod page * feedback (bounds checks and ring count fixes) * doc updates, add producer test with cpu specified * comment update * add missing test program, comment formatting * feedback * feedback/refactoring, update error codes * comment updates * comment updates * SAL+doxygen feedback * fix tests without guaranteed ordering * fix return code checks * switch back to infinite wait in unsubscribe * feedback - sentence formatting - completed/corrected doxygen - changed process_ring_records mapping to pointer - updated SAL annotations * typo * add missing doxygen/SAL * feedback - assert and wait handle cleanup * doc fixes and signature consistency fixes * analyze build fix in cleanup * feedback - add comment and add name for constant * move windows-specific structs/functions * fix libbpf function signatures, comments/naming * merge fix * merge fix --------- Co-authored-by: Michael Agun <danielagun@microsoft.com>
Reorder variable declarations so helper is declared before threads vector. C++ destroys locals in reverse order, so threads will now be joined before helper cleanup, preventing use-after-free when fault injection causes early test exit. Fixes microsoft#5047 Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…osoft#5060) * fix uaf. * Address CR comments.
…t#5071) Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
* fix memory leak * temporarily update fault injection tests * fix * remove temp code * code cleanup * cr comments * cr comments * cr comments
…published epoch reads (microsoft#5083) Replace the LOCK-prefixed InterlockedCompareExchange64 in _ebpf_epoch_get_published_epoch() with ReadAcquire64 which provides acquire semantics without the full bus lock overhead. The writer side (InterlockedIncrement on CPU 0) provides release semantics, so an acquire load on the reader side forms a correct release/acquire pair. On x64 this compiles to a plain MOV (TSO gives acquire for free); on ARM64 it compiles to LDAR. Both are sufficient for the safety invariant verified by the TLA+ epoch model. This eliminates cache-line contention on every ebpf_epoch_enter() and every retirement insert, which caused a measurable performance regression introduced in commit dca94d4. Signed-off-by: Alan Jowett <alanjo@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…changes (microsoft#5078) * Bump PREVAIL verifier to b9010eee and handle breaking changes Bump external/ebpf-verifier from e68a347b to b9010eee (main), which includes the fix for the verifier_fuzzer CI timeout (issue microsoft#5055). Handle breaking API changes: - Include io/elf_reader.hpp (header split in microsoft#1026) - Re-implement _instype()/collect_stats() locally (removed in microsoft#1042 but needed for ebpf_stat_t public API) - Add resolve_ksym_btf_id nullptr to platform structs - Patch load_elf stream-size fallback for in-memory ELF loading (vbpf/prevail#1048) * bump submodule * Pass Instruction by const ref in _instype * Update DLL dependency baselines for PREVAIL verifier bump --------- Co-authored-by: Michael Agun <danielagun@microsoft.com>
saxena-anurag
approved these changes
Mar 10, 2026
Alan-Jowett
approved these changes
Mar 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Changes to merge to release/1.1 branch (fixes, custom maps, and perf event array synchronous API)
9590c97toe68a347#5040Testing
Do any existing tests cover this change? Are new tests needed?
Documentation
Is there any documentation impact for this change?
Installation
Is there any installer impact for this change?