Skip to content

Cherry pick changes to release/1.1#5092

Merged
mikeagun merged 10 commits into
microsoft:release/1.1from
mikeagun:release-1-1-pick
Mar 10, 2026
Merged

Cherry pick changes to release/1.1#5092
mikeagun merged 10 commits into
microsoft:release/1.1from
mikeagun:release-1-1-pick

Conversation

@mikeagun
Copy link
Copy Markdown
Contributor

@mikeagun mikeagun commented Mar 10, 2026

dependabot Bot and others added 10 commits March 10, 2026 08:26
* 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>
…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>
@mikeagun mikeagun changed the title Release 1 1 pick Cherry pick changes to release/1.1 Mar 10, 2026
@mikeagun mikeagun marked this pull request as ready for review March 10, 2026 17:08
@mikeagun mikeagun merged commit 98e9c51 into microsoft:release/1.1 Mar 10, 2026
114 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in eBPF for Windows Triage Mar 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants