Yunjia Wang
c3c24d089d
Use Template
2019-07-29 10:30:09 -07:00
Yunjia Wang
d87b5285ca
Fix comment
2019-07-24 13:33:24 -07:00
Yunjia Wang
efd6946d21
Reformat
2019-07-23 15:35:50 -07:00
Yunjia Wang
9242fe122d
AddSelf more scenarios
2019-07-23 09:47:26 -07:00
Mark D. Roth
46f706c99b
Revert "Merge pull request #19686 from gnossen/revert_breakage"
...
This reverts commit 1f2398b0d5 , reversing
changes made to 99169d811c .
2019-07-23 07:50:27 -07:00
Yunjia Wang
8278d3e6a5
Resolving comments
2019-07-22 17:24:09 -07:00
Yunjia Wang
847faf407f
Removes unused variable error
2019-07-19 12:10:52 -07:00
Yunjia Wang
85314b3fcc
Re-format
2019-07-19 10:49:35 -07:00
Yunjia Wang
c6bc2b1875
Add threadpool benchmark and build files
2019-07-19 10:23:22 -07:00
Richard Belleville
63b4f3d819
Revert "Merge pull request #19673 from markdroth/channel_grpc_init"
...
This reverts commit 4e21980716 , reversing
changes made to 62b8a783fa .
2019-07-18 13:00:24 -07:00
Mark D. Roth
8cc5b8f680
Defer grpc shutdown until after channel destruction.
2019-07-17 16:35:14 -07:00
Arjun Roy
b1d73a01f1
Removed duplicate static table from hpack table. Removed an or instruction for
...
every usage of static grpc metadata. Inlined hpack table lookups for static
metadata.
This leads to faster hpack parser creation:
BM_HpackParserInitDestroy 5.32µs ± 1% 0.06µs ± 1% -98.91% (p=0.000 n=18+19)
And slightly faster parsing:
BM_HpackParserParseHeader<RepresentativeClientInitialMetadata, OnInitialHeader>
456ns ± 1% 435ns ± 1% -4.74% (p=0.000 n=18+19)
BM_HpackParserParseHeader<MoreRepresentativeClientInitialMetadata,
OnInitialHeader>
1.06µs ± 2% 1.04µs ± 2% -1.82% (p=0.000 n=19+20)
It also yields a slight (0.5 - 1.0 microsecond) reduction in CPU time for
fullstack unary pingpong:
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/512
[polls/iter:3.0001 ] 23.9µs ± 2%
23.0µs ± 1% -3.63% (p=0.002 n=6+6)
BM_UnaryPingPong<TCP, NoOpMutator, NoOpMutator>/0/32768
[polls/iter:3.00015 ] 35.1µs ± 1%
34.2µs ± 1% -2.57% (p=0.036 n=5+3)
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/8/0
[polls/iter:3.00011 ] 21.7µs ± 3%
21.2µs ± 2% -2.44% (p=0.017 n=6+5)
2019-07-15 15:39:31 -07:00
Yash Tibrewal
56a0153f16
Heap allocate the stream object for other benchmark cases too
2019-06-14 14:44:49 -07:00
Yash Tibrewal
cceca10a8a
Fix data race, heap use-after-free issue in bm_chttp2_transport
2019-06-13 17:05:51 -07:00
Mark D. Roth
4f3a55b73d
Merge remote-tracking branch 'upstream/master' into lb_policy_create_channel_api_improvement
2019-06-05 13:56:06 -07:00
Mark D. Roth
0f5834b88d
Merge remote-tracking branch 'upstream/master' into lb_policy_create_channel_api_improvement
2019-05-29 15:40:24 -07:00
Karthik Ravi Shankar
196b0aa3a3
Revert "Revert "Start supporting a callback-based RPC under lock""
2019-05-29 13:15:47 -07:00
Karthik Ravi Shankar
b790c24e5c
Revert "Start supporting a callback-based RPC under lock"
2019-05-29 11:20:36 -07:00
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