* Reland: "Make GetDefaultEventEngine return a shared_ptr (#30280)"
This reverts commit 45959e7cc1.
* Attempted fix with NoDestruct
* Not a process-wide singleton for the type. Just a NonDestruct
* fix
This works around valgrind memory leaks by giving EventEngines a fixed
lifetime. We eventually want ref-counted EventEngines internally, so this is
a step in the right direction as well.
A (currently) pthread_atfork-based fork support mechanism, allowing EventEngines - or any other object that wants to implement the Forkable interface - respond to forks.
* Rename the default EventEngine headers
Small cleanup. This code hasn't been related to factories for a month or
two.
* ensure only one target contains default_event_engine.h
* src + hdr in same target
* include guards
* [resource_quota] Custom controller
Instead of a PID controller use a custom binary-search inspired controller that will eventually converge to a good control value.
Experiments have shown this able to successfully hold a 95% memory pressure, optimizing for performance most of the time, and gracefully restricting memory usage under severe pressure.
There will be further changes after this one to use the new control value in various systems.
* Automated change: Fix sanity tests
* Update memory_quota.cc
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
This allows the security connectors to receive args that might be added by handshakers. Currently none of the connectors use the args, hence they are marked as unused. This is required for changes internally for security connectors related to Directpath
* Added new files for channel client/server
* Committing to switch branch
* Rebasing branch
* Switching branch
* Server process getting called
* Still working
* RPC received success, with sleep
* gRPC Receive success, grpc timeout
* Earlier but Clang tidy
* Fix timeout issue, remove some logs
* Added signint handler, test passing but flaky
* added sleep to reduce flakiness, removed some dependencies, changed LOG to gpr_log
* Changed benchmark_name default back to call
* remove deleted files
* grpc shutdown timeout
* trying to add shutdown
* Some changes
* Removed shutdown
* Automated change: Fix sanity tests
* Changes for review comments
* Changed comments
* Changed benchmark driver defaults so that CI testing would happen for all benchmarks
* Get server memory using RPC
* Add PID method to get memory
* Added gpr_subprocess_get_process_id to windows
* Removed GetAfterSnapshot since theres a not RPC method to get memory
* Automated change: Fix sanity tests
* Changed benchmark driver defaults so that CI testing would happen for all benchmarks
* Automated change: Fix sanity tests
* Automated change: Fix sanity tests
* Forgot semicolon
* Fix includes
* Automated change: Fix sanity tests
* Added GetMemUsage and changed Snapshot and callback server and client to call it
* Moved GetMemUsage from header file
* removed some unnecessary includes
* Automated change: Fix sanity tests
* Updating build file
* forgot a comma
* Added tags to BUILD for memstats
* Automated change: Fix sanity tests
* Switching branches
* Changed channel creation and GetBeforeSnapshot
* Switching branches
* Intermediate commit
* Revert merge commit
* Fixed merge issues
* Automated change: Fix sanity tests
* Changes to fix asan failures
* Automated change: Fix sanity tests
* Fix comment
Co-authored-by: nancylucy01 <nancylucy01@users.noreply.github.com>
* [filterstack] Eliminate flags on initial metadata
Instead prefer to pass this data in non-encoded metadata.
Needed to fix MetadataMap::Copy to copy non-encoded metadata (not doing so was unintended).
Removed the flags from call_details because there's not been a use for them there for a very long time.
* Automated change: Fix sanity tests
* fix
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
This is a partial fork of the windows iomgr code - specifically the IOCP and Socket pieces - with some improved architecture and encapsulation. And the start of a WindowsEventEngine.
Once this code is used in a gRPC TCP context, I imagine a few issues will shake out. Also, getting sanitizers set up with MSVC will take a bit of work (see a commit referencing abseil and MSVC bugs to hack around).
I forked the IomgrEventEngine's posix poller interfaces in the hope of negotiating compatibility between the platforms, but the interfaces diverged a fair bit, and I'm doubtful we'll be able to use these "pollers" generically in the same TCP code. Reunification might not happen, and that's probably fine, we'll see how similar the TCP code looks once it's fleshed out.
I also extracted the IomgrEventEngine's timer piece into a separate component, usable by both engines.
* Revert "Revert "Adding methods to get memory usage of server for the perchannel benchmark (#30390)" (#30433)"
This reverts commit 3fe438b55a.
* Made all variables used
* Added new files for channel client/server
* Committing to switch branch
* Rebasing branch
* Switching branch
* Server process getting called
* Still working
* RPC received success, with sleep
* gRPC Receive success, grpc timeout
* Earlier but Clang tidy
* Fix timeout issue, remove some logs
* Added signint handler, test passing but flaky
* added sleep to reduce flakiness, removed some dependencies, changed LOG to gpr_log
* Changed benchmark_name default back to call
* remove deleted files
* grpc shutdown timeout
* trying to add shutdown
* Some changes
* Removed shutdown
* Automated change: Fix sanity tests
* Changes for review comments
* Changed comments
* Changed benchmark driver defaults so that CI testing would happen for all benchmarks
* Get server memory using RPC
* Add PID method to get memory
* Added gpr_subprocess_get_process_id to windows
* Removed GetAfterSnapshot since theres a not RPC method to get memory
* Automated change: Fix sanity tests
* Changed benchmark driver defaults so that CI testing would happen for all benchmarks
* Automated change: Fix sanity tests
* Automated change: Fix sanity tests
* Forgot semicolon
* Fix includes
* Automated change: Fix sanity tests
* Added GetMemUsage and changed Snapshot and callback server and client to call it
* Moved GetMemUsage from header file
* removed some unnecessary includes
* Automated change: Fix sanity tests
* Updating build file
* forgot a comma
* Added tags to BUILD for memstats
* Automated change: Fix sanity tests
Co-authored-by: nancylucy01 <nancylucy01@users.noreply.github.com>
* service config API: use absl::Status instead of grpc_error
* Automated change: Fix sanity tests
* add missing build deps
* attempt to work around build breakage on older compilers
* trying the work-around in more spots
* more work-arounds
* more workarounds
* Automated change: Fix sanity tests
* work around another compiler problem
* Automated change: Fix sanity tests
* Automated change: Fix sanity tests
Co-authored-by: markdroth <markdroth@users.noreply.github.com>