AJ Heller
0e3a02e903
Revert "Remove the `urgent` argument from iomgr tcp read API ( #25494 )" ( #25592 )
...
This reverts commit a3398f9
. Justification: see b/181367644. tl;dr: assuming urgent==false does not hold in all situations.
4 years ago
AJ Heller
a3398f924c
Remove the `urgent` argument from iomgr tcp read API ( #25494 )
...
The urgent argument is a platform-specific flag that leaked into the (ideally) platform-independent HTTP/2 transport layer. In an effort to clean up the cross-platform API surface, it would be helpful if we can remove this argument from the TCP Read api without losing the performance optimization that was introduced along with it (see #18240 ).
4 years ago
Yash Tibrewal
f4e55b85bc
Replace disrespectful term
4 years ago
AJ Heller
880a854f0e
Convert URI parser to C++ #24701
4 years ago
Esun Kim
e0d8c498a6
C++ cast for others
4 years ago
Esun Kim
2ff84ed8c2
C++ cast for void*
4 years ago
Yash Tibrewal
6095b67d6c
Reduce BdpPingNotSentWithoutReceiveSideActivity flakiness
4 years ago
Mark D. Roth
27e1c1c56d
clang-tidy: enable google-readability-braces-around-statements
4 years ago
Yash Tibrewal
b555343dd3
Revert "Revert "Deprecate GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS""
4 years ago
Esun Kim
6ae8463500
Fix by modernize-make-unique
4 years ago
Yash Tibrewal
a9fd34a81d
Revert "Deprecate GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS"
4 years ago
Yash Tibrewal
e0c4475db0
Deprecate GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS and make it non-effective
4 years ago
Yash Tibrewal
23cb073a93
Initiate HTTP/2 writes on BDP pings too
4 years ago
Alexander Polcyn
46d4a27cb6
Add a test which reproduces the original crash that is fixed by https://github.com/grpc/grpc/pull/23984
4 years ago
Yash Tibrewal
4a03ce5a14
Remove grpc_channel_ping from surface API
4 years ago
Yash Tibrewal
09904691e0
Do not send BDP pings if there is no receive side activity.
4 years ago
Yash Tibrewal
7019c2ca4b
Long timeout for too_many_pings_test
4 years ago
Mark D. Roth
bd73844208
Move parse_address library from client_channel to iomgr.
4 years ago
Yash Tibrewal
c62d2b483c
Test renaming
4 years ago
Yash Tibrewal
1618d21796
Add roundrobin test and reviewer comments
4 years ago
Yash Tibrewal
cf0b46c4d6
Reviewer comments
4 years ago
Yash Tibrewal
7100ee3bfb
Add keepalive throttling
4 years ago
Yash Tibrewal
2c5291ff71
Plumb absl::Status through connectivity state notifiers
4 years ago
Mark D. Roth
9404f66f70
Replace most uses of gpr_asprintf() with absl calls.
4 years ago
Yash Tibrewal
f8b7fef753
Fix connect deadline issue in settings_timeout_test
5 years ago
Yash Tibrewal
234d64859f
Add some additional comments
5 years ago
Yash Tibrewal
722f1e937a
Reviewer comments
5 years ago
Yash Tibrewal
f41694ad64
Add the missing reset for ping clocks to avoid mistakenly sending GOAWAY
...
frames due to 'too_many_pings'
5 years ago
Brian O'Connor
d38f7cfe5e
Fixing bug with END_STREAM if header has continuations
...
- The HEADER frame should get the END_STREAM flag per the HTTP/2 spec;
the old code put END_STREAM on the last CONTINUATION frame.
- Removing deprecated parameter, is_last_in_stream, from finish_frame();
it has been superseded by the is_end_of_stream member of the framer_state
struct.
- Adding some gRPC frame validation tests to hpack_encoder_test.cc,
and explicting checking that the END_STREAM flag is not on the
CONTINUATION frame.
fixes #21436
5 years ago
Donna Dionne
46439bcb0f
Fixing the settings_timeout_test flake by reducing pollset_work deadline
...
Intermittently (when we run the test 100 times) we see that at times
we are not notified about successful socket connection even within 1
second.
The pollset_work deadline is set to 1 second, so when our connection
timeout is also set to 1 second, we only had 1 poll. And if that poll
didn't let us know about the socket, we didn't get another chance.
Reducing the pollset_work deadline to 100ms, now the test runs faster
and pass consistently:
result for 500 runs:
https://source.cloud.google.com/results/invocations/dd1b38f4-0f28-470b-a78b-b485445e44f2/targets/%2F%2Ftest%2Fcore%2Ftransport%2Fchttp2:settings_timeout_test/tests
5 years ago
Jan Tattermusch
cbb0ef2717
try marking some offenders as flaky
5 years ago
yang-g
5bc57b64fe
InitGoogleTest before grpc_init
5 years ago
Esun Kim
74d2fb842e
Timeout for shutdown!
5 years ago
Esun Kim
9ae81e1d3f
Make test code use TestEnvironment
5 years ago
Lidi Zheng
c34bef4ca4
Format all Bazel files with buildifier
5 years ago
Vijay Pai
2477b966e2
Remove unused-parameter warnings, round 2 (17 of 19)
5 years ago
Vijay Pai
17c8c4c4f2
Remove unused parameter warning (13 of 20)
5 years ago
Jan Tattermusch
8e79705d29
disable fuzzers on windows
5 years ago
Jan Tattermusch
6ebc1c616f
set uses_polling=False for some bazel tests
5 years ago
Arjun Roy
b46e3668d3
s/branch/tail_call/ for CH2 on_hdr().
...
on_hdr() checks if a void-return function pointer is null before jumping to it.
If it is null, it returns an error; else it executes that function and returns
success.
This change converts the void-returning function to one that returns a
grpc_error* and thus saves a branch in on_hdr() (since we're branching once by
following the function pointer anyways, we're effectively coalescing these two
branches).
5 years ago
Hope Casey-Allen
59564ebd96
Fix warnings to unblock gcc8 support
5 years ago
Arjun Roy
b2cda1e185
Reduced ops for grpc_chttp2_stream_map_find().
...
Several asserts in grpc_chttp2_stream_map_find() can be converted to debug
asserts. This PR also templatizes the internal find() method to have it be
strict in the delete case (which saves some branches).
5 years ago
Yash Tibrewal
2d498d2b6c
Add a few tests for ContextList and BufferList. Also, check that
...
timestamps is non-null before modifying it.
5 years ago
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)
5 years ago
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%)
6 years ago
Yash Tibrewal
30e1991bf9
Update context list test
6 years ago
yang-g
67742ef63f
Fix BUILD files. Manually edit bzl files
6 years ago
yang-g
e75fc243da
change tests to use the new class instead of grpc_test_init
6 years ago
Yash Tibrewal
77ba25ab72
s/int/uint32_t
6 years ago
Yash Tibrewal
9506d35674
Add a byte counter to chttp2_stream and use that for timestamps
6 years ago