Commit Graph

751 Commits

Author SHA1 Message Date
Mark D. Roth 477ebef532 Remove CreateChannel() method from LB helper API. 2019-05-28 14:18:15 -07:00
Karthik Ravi Shankar b18faa6c95 Fix tsan error 2019-05-23 20:08:45 -07:00
Karthik Ravi Shankar d2c8eb94c9 Fix microbenchmark failures 2019-05-23 18:09:12 -07:00
Karthik Ravi Shankar 3f05ac9584 Merge branch 'master' into callback-rpc-lock 2019-05-22 17:39:08 -07:00
Karthik Ravi Shankar e1f62278e3 Fix clang error 2019-05-22 13:53:10 -07:00
Karthik Ravi Shankar 4f7f561564 Add synchronization to bm test
- since we made the callback run on another thread, add synchronization
in bm tests as well
2019-05-22 10:42:50 -07:00
Karthik Ravi Shankar 40210d3b8a Move Channel to grpc_impl 2019-05-17 09:12:33 -07:00
Karthik Ravi Shankar 772a74aced Revert changes to Channel 2019-05-15 14:24:17 -07:00
Na-Na Pang a02c76dfb9 Cancel predefine number of streaming 2019-05-13 13:29:06 -07:00
Na-Na Pang 87d75d2a88 Add explicit and fix error 2019-05-10 11:23:24 -07:00
Na-Na Pang 7a464a3bc9 Merge remote-tracking branch 'upstream/master' 2019-05-10 11:16:14 -07:00
Karthik Ravi Shankar 476f7cd81f
Merge pull request #18730 from karthikravis/grpc_namespace_channel_new
Fold Channel into grpc_impl from grpc namespace
2019-05-09 14:09:21 -07:00
Na-Na Pang a2daa4ff08 Clean format' 2019-05-09 12:29:05 -07:00
Na-Na Pang 1ea651aee3 Add assertion 2019-05-09 12:22:55 -07:00
Na-Na Pang 9b50fbcaac Solve conflict 2019-05-08 18:50:06 -07:00
Na-Na Pang 762e58b574 Change client context allocation 2019-05-08 17:34:27 -07:00
Na-Na Pang 070902b871 Merge bm_callback_cq to bm_cq 2019-05-08 15:51:58 -07:00
Na-Na Pang 3fc702510f Reuse reactor to send new RPC 2019-05-08 10:15:43 -07:00
Na-Na Pang 2d5a9750a0 Manually add echo.proto to pass Portability build test 2019-05-06 16:20:59 -07:00
Na-Na Pang 1ba5f5c701 Modify build file 2019-05-06 14:55:00 -07:00
Na-Na Pang 32e10e618a address the reference arguments 2019-05-06 10:41:37 -07:00
Na-Na Pang 714e13b426 Delete log 2019-05-06 09:25:46 -07:00
Na-Na Pang c905f76a5b Clang format 2019-05-06 09:18:29 -07:00
Na-Na Pang 4198c4fcc6 Merge remote-tracking branch 'upstream/master' 2019-05-03 10:41:12 -07:00
Na-Na Pang 2787dedd70 Modify dependency of callback_test_service 2019-05-03 10:40:49 -07:00
Na-Na Pang 927c2f2c61 Change format 2019-05-02 17:24:54 -07:00
Na-Na Pang 5748665bc5 Add callback completion queue and modify callback streaming ping pong 2019-05-02 17:21:55 -07:00
Esun Kim e18ed03c04 Made gRPC inialized after entering main function in microbenchmarks. 2019-05-02 16:58:37 -07:00
Na-Na Pang 25128d18c1 Modify unary ping pong to send next rpc in callback function 2019-05-02 15:14:44 -07:00
Na-Na Pang 7d3fdec445 Add microbenchmark for callback completion queue 2019-05-01 11:29:28 -07:00
Na-Na Pang e70d507abe Changes based on comment 2019-04-30 16:32:31 -07:00
Karthik Ravi Shankar e3a0c85960 Merge branch 'master' into grpc_namespace_channel_new 2019-04-30 14:30:03 -07:00
Na-Na Pang b028141f01 Change streaming ping pong args and add comment 2019-04-30 14:24:40 -07:00
Karthik Ravi Shankar bc09c70799
Merge pull request #18454 from grpc/grpc_namespace_channel_arguments
Bring ChannelArguments to grpc_impl from grpc
2019-04-30 10:16:45 -07:00
Na-Na Pang 8bf138d799 Add copyright 2019-04-26 14:29:57 -07:00
Na-Na Pang 57bc124d3f Merge remote-tracking branch 'upstream/master' 2019-04-26 12:03:01 -07:00
Na-Na Pang 875d2df399 Modify build file 2019-04-26 10:52:21 -07:00
Na-Na Pang bbd4eb5028 Add microbenchmark for callback unary ping pong and bidistreaming ping pong 2019-04-26 09:52:12 -07:00
Yash Tibrewal 9345b7e276 s/atleast/at\ least 2019-04-25 17:15:30 -07:00
Arjun Roy 8ce42f67b2 Shrink arena size by 40 bytes and add additional
alignment options (for cache-alignment).

We shrink by:
1) Removing an unnecessary zone pointer.
2) Replacing gpr_mu (40 bytes when using pthread_mutex_t) with
std::atomic_flag.

We also header-inline the fastpath alloc (ie. when not doing a zone
alloc) and move the malloc() for a zone alloc outside of the mutex
critical zone, which allows us to replace the mutex with a spinlock.

We also cache-align created arenas.
2019-04-24 16:39:03 -07:00
Mark D. Roth ce3ff86763 Convert call_combiner to C++. 2019-04-23 15:27:06 -07:00
Karthik Ravi Shankar 858b5cca20 Fix clang_format_code.sh issues and move the internal calls to new name 2019-04-23 11:45:11 -07:00
Nicolas "Pixel" Noble b9a279c030 Resolving ambiguous call to CreateCustomChannel. 2019-04-22 23:53:53 +02:00
Karthik Ravi Shankar 973fa6950e Fold Channel into grpc_impl from grpc namespace 2019-04-11 12:04:23 -07:00
Karthik Ravi Shankar dad3f34207
Revert "Revert "Revert "Folding the Channel class into the grpc_impl namespace.""" 2019-04-10 12:14:04 -07:00
Karthik Ravi Shankar 9875fabdd4 Merge branch 'master' into revert-18076-revert-17797-channel 2019-04-08 12:55:07 -07:00
Karthik Ravi Shankar dcc199048f
Merge pull request #18396 from grpc/revert-18392-revert-18223-grpc_namespace_opencensus
Revert "Revert "Fold opencensus into grpc_impl namespace""
2019-03-29 10:09:01 -07:00
Bill Feng c1b03b68da Merge remote-tracking branch 'upstream/master' into feature/reinstate-rbe-windows 2019-03-28 16:45:41 -07:00
Guantao Liu 872d2787a0 Avoid using grpc_core::Executor when the background poller is available.
Instead, run closures in the background poller. This will generally
avoid the thread hop in the gRPC runtime.
2019-03-25 16:19:08 -07:00
Karthik Ravi Shankar 4e0923e802 Fix errors from clang_format_code.sh 2019-03-25 15:49:22 -07:00
Bill Feng d49cdbd01f Merge remote-tracking branch 'upstream/master' into feature/reinstate-rbe-windows 2019-03-25 14:09:00 -07:00
Soheil Hassas Yeganeh a3366c1b7f
Merge pull request #18464 from soheilhy/slice-buffer
Introduce grpc_byte_buffer_reader_peek and use it for Protobuf parsing.
2019-03-23 22:42:23 -04:00
Soheil Hassas Yeganeh 1014fe507f Use const ref for grpc_slice.
We are copying the slice on every call creation, which is hurting
ping/pong traffic.
2019-03-22 06:38:33 -04:00
Bill Feng d93959853f Enabled Windows Bazel build for cpp tests 2019-03-21 18:00:48 -07:00
Karthik Ravi Shankar 4260fe1147 More fixes 2019-03-21 17:51:28 -07:00
Soheil Hassas Yeganeh ad1b3e5094 Introduce grpc_byte_buffer_reader_peek and use it for Protobuf parsing.
grpc_byte_buffer_reader_next() copies and references the slice. This
is not always necessary since the caller will not use the slice
after destroying the byte buffer.

A prominent example is the protobuf parser, which
calls grpc_byte_buffer_reader_next() and immediately unrefs the slice
after the call. This ref() and unref() calls can be very expensive
in the hot path.

This commit introduces grpc_byte_buffer_reader_peek() which
essentialy return a pointer to the slice in the buffer, i.e.,
no copies, and no refs.

QPS of 1MiB 1 Channel callback benchmark increases by 5%.
More importantly insructions per cycle is increased by 10%.

Also add tests and benchmarks for byte_buffer_reader_peek()

This commit reaplies 509e77a5a3
2019-03-21 06:03:45 -04:00
Karthik Ravi Shankar 2a8f3f79ab Fix more namespace stuff 2019-03-15 17:08:58 -07:00
Karthik Ravi Shankar f66b654795
Revert "Revert "Fold opencensus into grpc_impl namespace"" 2019-03-15 11:30:23 -07:00
Karthik Ravi Shankar 3b4835d92d
Merge pull request #18392 from grpc/revert-18223-grpc_namespace_opencensus
Revert "Fold opencensus into grpc_impl namespace"
2019-03-15 11:27:35 -07:00
Karthik Ravi Shankar 2bf934f97d
Revert "Fold opencensus into grpc_impl namespace" 2019-03-15 10:20:06 -07:00
Jan Tattermusch cf6a311761
Revert "Windows builds for gRPC C++ tests" 2019-03-15 17:15:20 +01:00
Karthik Ravi Shankar 276c4dc593
Merge pull request #18223 from grpc/grpc_namespace_opencensus
Fold opencensus into grpc_impl namespace
2019-03-08 15:45:03 -08:00
Bill Feng d61f690a33
Merge pull request #18285 from billfeng327/update-deps-version
Windows local Bazel build for gRPC C++ tests
2019-03-08 14:17:36 -08:00
Soheil Hassas Yeganeh 0031393a17
Merge pull request #18240 from soheilhy/tcp-inq
Implement TCP_INQ for gRPC in Linux
2019-03-08 11:29:39 -05:00
billfeng327 9e102ea8b0 excluded non-compatible test 2019-03-07 16:14:02 -08:00
billfeng327 4241edeaa4 renamed tag to no_windows in conformation with Bazel and TensorFlow 2019-03-07 14:52:49 -08:00
Soheil Hassas Yeganeh 18b19105f2 Implement TCP_INQ for gRPC in Linux
TCP_INQ is a socket option we added to Linux to report pending bytes
on the socket as a control message.

Using TCP_INQ we can accurately decide whether to continue read or not.
Add an urgent parameter, when we do not want to wait for EPOLLIN.

This commit improves the latency of 1 RPC unary (minimal benchmark)
significantly:

  Before:
    l_50: 61.3584984733
    l_90: 94.8328711277
    l_99: 126.211351174
    l_999: 158.722406029

  After:
    l_50: 51.3546011488 (-16%)
    l_90: 72.3420731581 (-23%)
    l_99: 103.280218974 (-18%)
    l_999: 130.905689996 (-17%)
2019-03-06 22:15:53 -05:00
billfeng327 928aedf5c8 Merge branch 'master' into update-deps-version 2019-03-06 15:48:29 -08:00
billfeng327 ab06853fc9 C++ Windows test builds 2019-03-06 15:47:49 -08:00
Soheil Hassas Yeganeh c060d55cc7
Revert "Introduce grpc_byte_buffer_reader_peek and use it for Protobuf parsing." 2019-03-05 14:01:01 -05:00
Karthik Ravi Shankar b606cad6cc Fold opencensus into grpc_impl namespace
Moving opencensus into grpc_impl namespace..
2019-03-04 15:47:37 -08:00
Soheil Hassas Yeganeh 509e77a5a3 Introduce grpc_byte_buffer_reader_peek and use it for Protobuf parsing.
grpc_byte_buffer_reader_next() copies and references the slice. This
is not always necessary since the caller will not use the slice
after destroying the byte buffer.

A prominent example is the protobuf parser, which
calls grpc_byte_buffer_reader_next() and immediately unrefs the slice
after the call. This ref() and unref() calls can be very expensive
in the hot path.

This commit introduces grpc_byte_buffer_reader_peek() which
essentialy return a pointer to the slice in the buffer, i.e.,
no copies, and no refs.

QPS of 1MiB 1 Channel callback benchmark increases by 5%.
More importantly insructions per cycle is increased by 10%.

Also add tests and benchmarks for byte_buffer_reader_peek()
2019-03-04 14:17:46 -05:00
Mark D. Roth 251d66aac6 Convert client channel factory to C++ 2019-03-01 08:40:21 -08:00
Nicolas Noble 91ad888497
Revert "Revert "Folding the Channel class into the grpc_impl namespace."" 2019-02-27 16:53:23 -08:00
Vijay Pai 29191d5eda Need to properly init library for microbenchmarks 2019-02-26 12:44:13 -08:00
Mark D. Roth aa149fedbb Revert "Merge pull request #18093 from grpc/revert-17770-lb_policy_picker_api"
This reverts commit f327b83706, reversing
changes made to b3b5d63423.
2019-02-19 13:19:24 -08:00
hcaseyal 275296c594
Revert "LB policy picker API" 2019-02-19 11:05:52 -08:00
Soheil Hassas Yeganeh db38d4ca9b
Merge pull request #17939 from vertextao/gpr_mu_cv-leak-test
Add ASAN-only leak detection for gpr_mu/cv and fix the newly caught leaks
2019-02-15 21:43:32 -05:00
Nicolas Noble 2ad245cb0c
Revert "Folding the Channel class into the grpc_impl namespace." 2019-02-15 09:52:15 -08:00
xtao 7766912dda
fix more detected mu/cv leaks 2019-02-16 00:00:50 +08:00
Nicolas "Pixel" Noble de332cfcee Merge branch 'master' of https://github.com/grpc/grpc into channel 2019-02-13 22:11:47 +01:00
Mark D. Roth bab8123763 LB policy picker API 2019-02-13 08:30:04 -08:00
Nicolas "Pixel" Noble 63db582516 Merge branch 'master' of https://github.com/grpc/grpc into channel 2019-02-13 00:19:23 +01:00
Vijay Pai f919ace038 Add a microbenchmark for immediately-firing alarms 2019-02-07 08:38:26 -08:00
Juanli Shen 4f3c1572e1
Revert "Revert "C++-ify subchannel"" 2019-01-30 10:23:07 -08:00
Juanli Shen bbfc024a02
Revert "C++-ify subchannel" 2019-01-29 15:23:55 -08:00
Juanli Shen 25dc2ffed6 C++-ify subchannel 2019-01-29 13:00:02 -08:00
Nicolas "Pixel" Noble 2fd079ff7c Channel folding. 2019-01-23 21:40:07 +01:00
Vijay Pai fab05d336c Dynamic callback requesting, graceful server shutdown, and separate ExecCtx for callbacks 2019-01-23 11:21:50 -08:00
Vijay Pai 302e7b4d2b
Merge pull request #17658 from guantaol/avoid_thd_jump
Avoid the thread jump in server callback APIs.
2019-01-09 13:43:24 -08:00
Juanli Shen 23677bd827 Remove subchannel args 2019-01-08 19:43:45 -08:00
Guantao Liu 11eff929e2 Avoid the thread jump in server callback APIs.
Add a utility function in iomgr to check whether the caller thread is a
worker for any background poller, and keep grpc combiner from offloading
closures to the default executor if the current thread is a worker for
any background poller.
2019-01-07 18:22:50 -08:00
Soheil Hassas Yeganeh 2e017da58a Add microbenchmarks for grpc_timer
This helps assessing upcoming changes.
2018-12-21 18:56:09 -05:00
yang-g 038a71d826 Merge remote-tracking branch 'upstream/master' into gpr_test_util_to_grpc_test_util 2018-12-17 08:52:20 -08:00
Vijay Pai ca4e55e6ca Benchmark to show that byte buffer copy is size-independent 2018-12-14 13:23:34 -08:00
ncteisen 7b81ae14a7 clang tidy and clang format 2018-12-07 14:59:04 -08:00
yang-g 67742ef63f Fix BUILD files. Manually edit bzl files 2018-12-06 14:37:52 -08:00
Noah Eisen bc447b5f23
Revert "Revert "Add Testonly to Targets"" 2018-12-06 11:16:15 -08:00
Sheena Madan 5874506655
Merge pull request #17418 from grpc/revert-16882-microbenchmarks-bazel
Revert "Make Microbenchmarks Test Targets"
2018-12-05 18:41:39 -08:00
Sheena Madan 8a461613d1
Revert "Make Microbenchmarks Test Targets" 2018-12-05 16:45:15 -08:00
Sheena Madan de00c613a9
Revert "Add Testonly to Targets" 2018-12-05 16:40:37 -08:00
Sheena Madan 073467b584
Update BUILD 2018-12-04 13:14:58 -08:00
ncteisen 0a37159ff4 re add testonly 2018-12-04 12:41:47 -08:00
ncteisen 8ace4e16df disable some add some 2018-11-30 15:37:02 -08:00
ncteisen 475ccfd110 Fix ubsan 2018-11-30 10:27:34 -08:00
ncteisen 3eb6c4779d Exclude census 2018-11-30 10:27:34 -08:00
ncteisen bdd0d47e07 microbenchmarks don't use polling 2018-11-30 10:27:34 -08:00
Noah Eisen 12d9d04cb4 Make microbenchmarks test targets 2018-11-30 10:27:34 -08:00
Guantao Liu 99673fcbe3
Merge pull request #17244 from guantaol/ev_epollbg
Preparation for the new background poller 'epollbg'
2018-11-28 15:37:28 -08:00
Yash Tibrewal 248e304671 Merge branch 'master' into httpplumbing 2018-11-21 11:48:41 -08:00
Guantao Liu 458d9d28db Add the missing definition of shutdown_background_closure to bm_cq_multiple_threads 2018-11-20 11:09:06 -08:00
Yash Tibrewal bab043e865 Cleanup 2018-11-16 18:11:42 -08:00
Yash Tibrewal a60fd359cb Modify remaining usecases in test/cpp 2018-11-16 11:42:31 -08:00
Soheil Hassas Yeganeh 48e4a81b05 Remeve memset(0) from arena allocated memory.
Callers are updated to properly initialize the memory.

This behavior can be overridden using GRPC_ARENA_INIT_STRATEGY
environment variable.
2018-11-05 10:12:39 -05:00
ncteisen 1a7f14fd31 Remove uneeded header 2018-10-18 14:00:09 -07:00
Soheil Hassas Yeganeh cc5fe63da0 Fix bazel for //test/cpp/microbenchmarks/...
Fix a build failure due to missed dependency and add the bm_create_call
benchmark to the build targets.
2018-10-17 16:27:59 -04:00
ncteisen f53e6884b6 Fix two build breakages 2018-10-04 22:05:27 -07:00
ncteisen e35f24da4d reviewer feedback 2018-10-04 15:25:49 -07:00
Yash Tibrewal 130eeeaeb9 Merge branch 'master' into interceptors_initial 2018-10-02 14:49:17 -07:00
Hope Casey-Allen d568fba51a Add documentation for running microbenchmarks with other tooling 2018-09-28 14:36:13 -07:00
Yash Tibrewal a1598c5abf Create interfaces and initial plumbing for interception API 2018-09-26 19:25:30 -07:00
Vijay Pai 9134639877 Warn on non-virtual destructor if class has virtual functions 2018-09-20 18:09:27 -07:00
hcaseyal 07308653a8
Merge pull request #16629 from hcaseyal/fix_hpack_microbenchmarks
Add benchmarks for on_initial_header
2018-09-20 14:56:50 -07:00
Hope Casey-Allen 4c6e7ce15d Destroy metadata buffer at end of benchmark loop 2018-09-20 12:56:56 -07:00
Hope Casey-Allen d44feec92f Reassign arena pointer instead of stomping on memory 2018-09-20 09:54:59 -07:00
Hope Casey-Allen 4b721fbde0 Destroy arena at end of benchmark to not leak memory 2018-09-19 20:51:45 -07:00
Hope Casey-Allen 29d9489ea9 Increase initial arena size to be more representative of real workload scenario and increase frequency of recreating the arena to avoid oom 2018-09-19 20:46:17 -07:00
Hope Casey-Allen 91727bd015 Move arena create outside of benchmark, format, and typo fix 2018-09-19 19:13:23 -07:00
Noah Eisen c33ec79cd8 Only output stats if they were collected 2018-09-17 15:15:05 -07:00
Hope Casey-Allen 967bbcd5d3 Fixing benchmark name and adding a new one 2018-09-13 18:38:01 -07:00
Yash Tibrewal 8d47cd4992
Revert "Revert "Fathom tcp changes"" 2018-08-27 14:56:01 -07:00
Jan Tattermusch 97ba943f17
Revert "Fathom tcp changes" 2018-08-27 12:43:20 +02:00
Yash Tibrewal aab47cbdf2
Merge pull request #15941 from yashykt/fathomtcpchanges
Fathom tcp changes
2018-08-24 12:27:56 -07:00
Vijay Pai a4326eb7b8 Add comment to address reviewer comment 2018-08-13 23:01:23 -07:00
Vijay Pai a0e92e7727 Add proper synchronization so that stats are setup and destroyed cleanly 2018-08-10 15:48:48 -07:00
Vijay Pai 9043a4f56d Some cleanup 2018-08-10 06:11:40 +00:00
Vijay Pai 17e3611c0d Infrastructure for adding custom polling engines 2018-08-09 12:39:30 -07:00
Yash Tibrewal f0397933b0 Fathom TCP level changes. TracedBuffer for keeping track of all buffers
to be traced. Adding tests for Fathom and TracedBuffer. A lot more.
Please read PR description.
2018-07-16 16:28:15 -07:00
Juanli Shen f5f1d57d7a Add load reporting filter 2018-06-22 10:00:48 -07:00
ncteisen 77472309d5 Add channel creation benchmark 2018-06-21 10:30:49 -07:00
Mark D. Roth 547bb5e66f
Merge pull request #15782 from markdroth/recv_trailing_metadata_ready3
Third attempt: move recv_trailing_metadata into its own callback, don't use on_complete for recv_ops
2018-06-19 07:40:31 -07:00
Jim King 01cbab60f3
Merge pull request #15070 from Vizerai/filter_port
Adding opencensus grpc plugin with bazel support.
2018-06-18 17:01:26 -07:00
adelez 5bdd9a8cb9
Revert "Revert "Add suppressions to sanitizers for bazel builds"" 2018-06-15 16:31:21 -07:00
Noah Eisen 58e0cbf9fb Enable the performance-* clang-tidy checks 2018-06-14 14:58:09 -04:00
Nicolas Noble 43557fee0b
Revert "Add suppressions to sanitizers for bazel builds" 2018-06-14 10:49:11 -07:00
Mark D. Roth 817d28fed6 Revert "Merge pull request #15746 from grpc/revert-15709-recv_trailing_metadata_ready2"
This reverts commit 3f9308ce1f, reversing
changes made to 92a0ae0b10.
2018-06-14 09:44:58 -07:00
Adele Zhou 4cd659505c Add data param to grpc_cc_library 2018-06-13 15:36:28 -07:00
apolcyn eb10abe94a
Merge pull request #15648 from apolcyn/remove_fd_shutdown_already_closed
Remove already_closed param from fd_orphan
2018-06-12 14:06:33 -07:00
Alexander Polcyn 4e8a2f5f27 Remove already_closed param from fd_orphan 2018-06-07 15:27:05 -07:00
Yash Tibrewal 905f0ca39e merge master 2018-05-31 19:47:30 -07:00