Граф коммитов

384 Коммитов

Автор SHA1 Сообщение Дата
Alan Jowett 669418dc85
Fix memory leak in ebpf_ring_buffer_map_subscribe (#2081)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Anurag Saxena <43585259+saxena-anurag@users.noreply.github.com>
2023-02-15 02:07:54 +00:00
Michael Friesen 5150f2ec55
disable hook extension rundown until NMR binding is complete (#2011)
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2023-02-14 11:57:47 -08:00
Alan Jowett 605ba578cd
Workaround to avoid race between attach failing and unregister (#2049)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2023-02-08 11:51:42 -07:00
Dave Thaler 3d626ff9c1
Clean up order of includes (#2015)
* Clean up order of includes

Fixes #1963

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Update clang-format

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Clean up headers

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Update sort

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* FIx various build errors

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix ordering if including a .c file

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix cmake build

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* More header cleanup

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Update expected bpf2c output

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* More header fixes

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Update expected bpf2c output for custom bpf.c

The generate script does not handle this file.

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix tests

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix more expected bpf2c output

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

---------

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Anurag Saxena <43585259+saxena-anurag@users.noreply.github.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2023-02-07 18:32:19 +00:00
Alan Jowett 4ad5287a29
Invoke _ebpf_extension_client_notify_change before completing binding (#2009)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Anurag Saxena <43585259+saxena-anurag@users.noreply.github.com>
2023-02-07 17:09:43 +00:00
Gianni Trevisiol 694485a5e3
Add JIT & Interpreter build switches. (#2031)
* draft

* nit

* doc update

* doc update

* description update

---------

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2023-02-07 15:08:47 +00:00
Dhiren Vispute fd1bd431ea
Incorporate post-merge feedback on PR#2004 (#2027) 2023-02-03 23:32:05 +00:00
Dhiren Vispute f50dcb999d
Use weak reference counts for object table entries (#2004)
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2023-02-03 09:33:18 -08:00
Alan Jowett c57ca7c9f7
Catch std::bad_alloc from ParsePEFromFile (#1999)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2023-02-02 13:05:36 -07:00
Alan Jowett d9e92200d5
Delay NMR registration until link is ready (#2005)
* Delay NMR registration until link is ready

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Fix ExUuidCreate at DISPATCH IRQL

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

---------

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2023-02-02 04:37:50 +00:00
Alan Jowett a86e905ff1
Catch and terminate exception in ebpf_ring_buffer_map_subscribe (#2000)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-02-02 03:09:26 +00:00
Alan Jowett 27fee383cd
Prevent loading of incompatible native modules (#1990)
* Prevent loading of incompatible native modules

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Apply suggestions from code review

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

* Fix test failures

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

---------

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Anurag Saxena <43585259+saxena-anurag@users.noreply.github.com>
2023-02-01 20:43:58 +00:00
Dave Thaler 68544ba5e6
Update verifier to latest (#1991)
* Update verifier to latest

Fixes #1451
Fixes #1756

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Update samples to work around verifier limitation

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Update expected bpf2c output

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix cmake build

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

---------

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-02-01 12:52:20 -07:00
Alan Jowett 44602dcb1d
ebpf_program_t computes hash of program info on first attach (#1948)
* ebpf_program_t computes hash of program info on first attach

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Provider reload test

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Anurag Saxena <43585259+saxena-anurag@users.noreply.github.com>
2023-01-31 16:14:12 +00:00
Alan Jowett 39c1490fb5
Protect ebpf_link_detach_program with a ref-count (#1984)
* Protect ebpf_link_detach_program with a ref-count

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Fix build break

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

---------

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-01-31 00:54:23 +00:00
Anurag Saxena 319ba6dc6b
Implement sock_addr specific global helper functions (#1847)
* fix

* add native test

* cleanup

* CR comments

* update expected files

* fix

* cr comments

* add 2 helper

* fix proj

* add admin helper

* fix expected files

* test fix

* fix log

* fix

* fix

* fix

* fix test

* implement global helper, add tests

* fix cmake build

* fix analysis failure, update expected files

* update expected fileS

* reuse bpf_get_current_pid_tgid

* fix tests

* fix helper

* fix tests

* update expected files

* backup

* formatting

* fix bad merge

* cleanup

* cleanup

* update issue number

* add header file

* add standard user test

* update helper definition

* fix

* code cleanup

* code cleanup

* fix kernel test

* add check for API calls

* fix test, PR comments

* pr comments

* add debug logs

* add debug logs, fix netebpfext test

* fix netebpfext test

* comment out log

* add traces to debug

* CR comments

* fix netebpfext_unit sock_addr test

* cr comments
2023-01-30 23:44:30 +00:00
Alan Jowett 1e5fb18ff7
Mark all ebpf_* api's as noexcept (#1967)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-01-26 23:46:27 +00:00
Alan Jowett 299c1ac90f
Make bpf prog test run async internally to allow for cancellation. (#1953)
* Make bpf prog test run async internally to allow for cancellation

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-01-26 14:00:24 -08:00
Dhiren Vispute 9f3bb0f5c7
move assert to after stack dump (#1959) 2023-01-25 22:15:13 +00:00
Alan Jowett eced450508
Regenerate and checkin corpus files (#1872)
* Regenerate and checkin corpus files

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-01-24 18:29:10 +00:00
Shankar Seal eb83ea88c2
fix to 1176 (#1942)
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2023-01-24 04:01:59 +00:00
Anurag Saxena 8d39739f82
fix leak (#1932) 2023-01-21 09:33:29 -08:00
Alan Jowett 5bd706092b
Add option to generate .spd files for sample driven PGO (#1931)
* Add option to generate .spd files for sample driven PGO

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Fix test failure

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-01-20 23:10:24 +00:00
Alan Jowett 8c8c2ffa41
Remove dependency on trampoline table for interpret and native. (#1876)
* Remove dependency on trampoline table for interpret and native
Fix for provider attach before wfp initialized

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Fix code analysis failure

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2023-01-18 21:04:19 +00:00
Alan Jowett 2703aa05bd
Fix leak in EX_RUNDOWN_REF mock (#1886)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-01-18 20:08:30 +00:00
Anurag Saxena 68ea41a2a7
Fix race condition in ebpf_link_detach_program() and _ebpf_link_instance_invoke() (#1906) 2023-01-17 19:25:32 +00:00
Delaram Amiri 215323919a
Implementation of syscalls in bpf_syscall.cpp (#1866)
* update fuzzing doc

* Update docs/Fuzzing.md

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

* update based on PR comment

* implementation of bpf syscall

* modify attach/detach APIs

* modify unit tests

* modify unit test

* Update tests/unit/libbpf_test.cpp

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

* Update tests/unit/libbpf_test.cpp

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

* Update tests/unit/libbpf_test.cpp

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

* Update tests/unit/libbpf_test.cpp

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

* Update tests/unit/libbpf_test.cpp

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

* Update tests/unit/libbpf_test.cpp

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

* Update tests/unit/libbpf_test.cpp

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

* change attach struct to unnamed

* Update tests/unit/libbpf_test.cpp

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

* added failure test for look up and deletion

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2023-01-17 17:56:03 +00:00
Alan Jowett 5f02fb9f16
Prune inactive threads from the epoch thread table (#1865)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-01-13 10:59:29 -08:00
Alan Jowett 2a1a124db4
Yield the CPU every 1024 invocations of the BPF program (#1856)
* Yeild the CPU every 1024 invocations of the BPF program

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-01-12 02:31:52 +00:00
Dave Thaler d4ca06954c
Change global variable to a static member per DevelopmentGuide (#1858)
* Change global variable to a static member per development guide

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix comment in include file

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2023-01-11 19:02:31 +00:00
Alan Jowett 24c8240a82
Protect use of data retuned by NMR program information provider (#1853)
* Protect use of data returned by NMR program information provider

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-01-10 19:08:15 -08:00
Alan Jowett 9f46c2ad90
Implement context handling for netebpfext (#1840)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-01-10 19:22:20 +00:00
Anurag Saxena 80bc1cb737
Support for extension to get the program context (#1827)
* fix

* update doc

* cleanup

* Apply suggestions from code review

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

* fix build break

* cr comments

* fix netebpfext um

* Update netebpfext/net_ebpf_ext_prog_info_provider.c

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

* fix break

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2023-01-09 20:38:16 +00:00
Alan Jowett a902b82788
PR feedback from https://github.com/microsoft/ebpf-for-windows/pull/1825 (#1838)
* PR feedback from https://github.com/microsoft/ebpf-for-windows/pull/1825

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Update libs/execution_context/ebpf_program.c

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2023-01-08 19:53:53 -07:00
Alan Jowett de5ab7aaec
Add bpf_prog_test_run_opts support (#1825)
* Add bpf_prog_test_run_opts support

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Update BPF syscall interface

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Fix code analysis failure

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-01-09 00:24:24 +00:00
Alan Jowett 03b16e40cc
Remove dead code in encode_program_information module (#1821)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-01-05 08:31:41 -08:00
Alan Jowett 6b6e2a61c0
Fix environment variable handling (#1805)
* Fix environment variable handling

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Apply suggestions from code review

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2023-01-03 20:20:45 +00:00
Anurag Saxena c22199cbfb
fix (#1812) 2023-01-03 07:59:33 -07:00
Alan Jowett a42270f858
Fix memory leak in circular maps (#1796)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-01-02 06:38:33 +00:00
Anurag Saxena 8cb62b3fd7
Support for multiple implementations of global helper functions (#1761)
* fix

* add native test

* cleanup

* CR comments

* update expected files

* fix

* cr comments
2022-12-31 10:56:28 -07:00
Alan Jowett 866bc2ac79
First round of memory leak fixes in ebpfapi (#1774)
* First round of memory leak fixes in ebpfapi

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-12-29 11:53:16 -08:00
Alan Jowett 025f032680
Add support for logging leaked allocations (#1770)
* Add support for logging leaked allocations

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Fix code analysis failures

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-12-23 00:42:06 +00:00
Alan Jowett f4b0fa1a50
Add version check to native images (#1720)
* Add version check to native images

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Fix release build

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-12-19 20:51:07 -07:00
github-actions[bot] 0dff94f740
Update NuGet packages (#1768)
Co-authored-by: Alan-Jowett <Alan-Jowett@users.noreply.github.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2022-12-19 21:02:25 +00:00
Alan Jowett 3840b31fc0
Check program_info hash during attach to provider (#1760)
* Check program_info hash during attach to provider

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-12-19 19:22:41 +00:00
Alan Jowett 0b293ad804
Fix code analysis annotations for In and In_opt parameters by adding const where appropriate or changing to Inout where appropriate. (#1749)
* Fix code analysis annotations for _In_ and _In_opt_ parameters,
add const where appropriate or change to _Inout_ where appropriate.

The following regex expressions were used to find the problems:
Find _In_ or _In_opt_ that are not const and are not followed by _Post_invalid_ or _Frees_ptr_ or _Post_ptr_invalid_:
```_In_[ ]+(?!.*(const|_Post_invalid_|_Frees_ptr_|_Post_ptr_invalid_))```
```_In_opt_[ ]+(?!.*(const|_Post_invalid_|_Frees_ptr_|_Post_ptr_invalid_))```

Some of the _In_ and _In_opt_ parameters are not const due to required compatibility with the Windows API.
Pointers to functions are const by definition, so the const qualifier is not required.

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Fix code analysis failure

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-12-15 15:58:33 -08:00
Alan Jowett 435e633b7b
Rolling lru test and fix for heap corruption (#1752)
* Add rolling key LRU test

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Fix heap corruption in LRU hash map under heavy load.
Add more realistic test case for LRU performance.
Fix bug in LRU hash map where it would fail to insert an entry if the
hash table was full.

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Don't reap non-LRU maps

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Build break

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-12-15 20:26:18 +00:00
github-actions[bot] d28c045228
Update NuGet packages (#1747)
Co-authored-by: Alan-Jowett <Alan-Jowett@users.noreply.github.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2022-12-13 19:36:39 -07:00
Alan Jowett d0a97366fc
Implement multi-generational LRU (#1726)
* Multi-generational LRU

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-12-14 01:18:36 +00:00
Delaram Amiri 236182b040
platform library are missing SAL annotation (#1742)
* enable app verifier for cicd build

* SAL annotations

* changed yml file

* change _In_ to _Inout_

* update doxygen

* Update libs/platform/user/ebpf_handle_user.c

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

* Update libs/platform/kernel/ebpf_handle_kernel.c

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-12-13 17:06:01 -07:00