Commit Graph

4284 Commits

Author SHA1 Message Date
Karthik Ravi Shankar 939830aa15
Merge pull request #20030 from karthikravis/move-method-handler
Make MethodHandler and related interfaces generic
2019-09-10 21:45:08 -07:00
Soheil Hassas Yeganeh 9f48cb0f07
Merge pull request #19907 from soheilhy/call-cycle-clock
Use cycle clock instead of clock monotonic to measure call latency.
2019-09-10 14:36:27 -04:00
Yash Tibrewal f3cd878e0b
Merge pull request #20188 from yashykt/creds_interception
Allow call credentials interception at PRE_SEND_INITIAL_METADATA
2019-09-09 18:42:11 -07:00
Yash Tibrewal aa84ceb38e Add another test for when the credentials were previously set 2019-09-09 15:59:59 -07:00
Soheil Hassas Yeganeh c9376b4e0b Use cycle clock instead of clock monotonic to measure call latency.
This removes two more getttime syscalls from the hot path, when cycle
clock is enabled.
2019-09-09 10:37:48 -04:00
Yash Tibrewal 361a902262 Reviewer comments 2019-09-06 14:20:39 -07:00
Arjun Roy 0b06676c9e hpack encoder optimizations.
Removed some cycles and branches from hpack_enc for CH2.
Specifically:
1. Pushed certain metadata key/value length checks to
prepare_application_metadata() in src/core/lib/surface/call.cc.
This means that rather than check all key/val lengths for all metadata, we only
do so for custom added user metadata. Inside CH2, we change the length checks to
debug checks so we can catch if core/filter metadata fails to pass the check.

2. Changed various asserts to debug asserts when able.

3. Refactored some of the header emission code to remove duplicated code.

4. Un-inlined some logging methods.

This results in somewhat faster hpack_encoder performance:

BM_HpackEncoderInitDestroy
222ns ± 0%              221ns ± 0%   -0.29%        (p=0.000 n=34+34)
BM_HpackEncoderEncodeDeadline
[framing_bytes/iter:9 header_bytes/iter:6       ]               135ns ± 1%
124ns ± 0%   -8.05%        (p=0.000 n=39+38)
BM_HpackEncoderEncodeHeader<EmptyBatch>/0/16384
[framing_bytes/iter:9 header_bytes/iter:0       ]              34.2ns ± 0%
34.2ns ± 0%   -0.01%        (p=0.014 n=34+38)
BM_HpackEncoderEncodeHeader<EmptyBatch>/1/16384
[framing_bytes/iter:9 header_bytes/iter:0       ]              34.2ns ± 0%
34.2ns ± 0%   -0.04%        (p=0.004 n=34+37)
BM_HpackEncoderEncodeHeader<SingleStaticElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              47.5ns ± 0%
45.9ns ± 0%   -3.28%        (p=0.000 n=28+38)
BM_HpackEncoderEncodeHeader<SingleInternedKeyElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:6       ]              77.0ns ± 1%
68.3ns ± 1%  -11.33%        (p=0.000 n=39+40)
BM_HpackEncoderEncodeHeader<SingleInternedElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              47.7ns ± 1%
45.5ns ± 0%   -4.63%        (p=0.000 n=39+33)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<1, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              47.2ns ± 0%
45.3ns ± 0%   -3.96%        (p=0.000 n=33+34)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<3, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              47.7ns ± 0%
45.6ns ± 0%   -4.54%        (p=0.000 n=38+40)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<10, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              47.7ns ± 0%
45.5ns ± 0%   -4.63%        (p=0.000 n=39+32)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<31, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              47.8ns ± 0%
45.6ns ± 1%   -4.59%        (p=0.000 n=38+39)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<100, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              47.8ns ± 0%
45.5ns ± 0%   -4.64%        (p=0.000 n=39+36)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<1, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              47.3ns ± 0%
45.3ns ± 0%   -4.09%        (p=0.000 n=38+36)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<3, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              47.8ns ± 1%
45.6ns ± 0%   -4.71%        (p=0.000 n=37+40)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<10, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              47.7ns ± 0%
45.5ns ± 0%   -4.66%        (p=0.000 n=39+32)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<31, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              47.8ns ± 1%
45.6ns ± 1%   -4.62%        (p=0.000 n=37+39)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<100, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              47.7ns ± 0%
45.5ns ± 0%   -4.67%        (p=0.000 n=38+32)
BM_HpackEncoderEncodeHeader<SingleNonInternedElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:9       ]              80.5ns ± 1%
74.7ns ± 0%   -7.16%        (p=0.000 n=38+35)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<1, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:12      ]               105ns ± 1%
99ns ± 0%   -5.91%        (p=0.000 n=38+34)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<3, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:14      ]               111ns ± 1%
106ns ± 1%   -4.86%         (p=0.020 n=39+2)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<10, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:23      ]               135ns ± 0%
130ns ± 0%   -3.45%         (p=0.020 n=35+2)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<31, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:46      ]               225ns ± 1%
223ns ± 0%   -0.91%         (p=0.003 n=37+2)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<100, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:120     ]               467ns ± 0%
472ns ± 0%   +1.09%         (p=0.003 n=38+2)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<1, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:12      ]              81.6ns ± 1%
74.8ns ± 0%   -8.40%        (p=0.000 n=37+33)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<3, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:14      ]              82.0ns ± 1%
74.8ns ± 0%   -8.80%        (p=0.000 n=37+32)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<10, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:21      ]              82.1ns ± 1%
74.9ns ± 0%   -8.86%        (p=0.000 n=35+34)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<31, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:42      ]              97.6ns ± 2%
91.8ns ± 0%   -5.95%        (p=0.000 n=35+27)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<100, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:111     ]              97.2ns ± 1%
91.2ns ± 2%   -6.19%        (p=0.000 n=37+38)
BM_HpackEncoderEncodeHeader<SingleNonInternedElem>/0/1
[framing_bytes/iter:54 header_bytes/iter:9      ]               230ns ± 0%
221ns ± 0%   -3.91%        (p=0.000 n=38+37)
BM_HpackEncoderEncodeHeader<MoreRepresentativeClientInitialMetadata>/0/16384
[framing_bytes/iter:9 header_bytes/iter:16      ]               206ns ± 2%
170ns ± 1%  -17.51%        (p=0.000 n=39+39)
BM_HpackEncoderEncodeHeader<RepresentativeServerInitialMetadata>/0/16384
[framing_bytes/iter:9 header_bytes/iter:3       ]              66.4ns ± 2%
62.5ns ± 1%   -5.85%        (p=0.000 n=34+39)
BM_HpackEncoderEncodeHeader<RepresentativeServerTrailingMetadata>/1/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              47.5ns ± 0%
45.9ns ± 1%   -3.29%        (p=0.000 n=26+38)
2019-09-06 13:43:29 -07:00
rmstar a9dbfb7c2f
Merge pull request #20028 from rmstar/ioscppe2e
Enable end2end C++ tests on iOS.
2019-09-06 13:27:13 -07:00
Karthik Ravi Shankar 7ec1a9663d Merge branch 'master' into move-method-handler 2019-09-06 12:21:29 -07:00
Yash Tibrewal 97f1f57dab Allow call credentials to be set even after the call is created but before initial metadata is sent 2019-09-05 18:13:59 -07:00
Prashant Jaikumar 9f02fc7f91 Enable end2end C++ tests on iOS.
Some e2e tests were disabled on iOS because they hit the Apple CFStream bug.
This commit enables e2e tests and works around the Apple bug by disabling CFStream.
2019-09-05 13:43:45 -07:00
Vijay Pai 9bb1247bdb
Merge pull request #16327 from vjpai/keep_running
C++ microbenchmarks: update from KeepRunning to range-based for
2019-09-05 11:07:53 -07:00
Juanli Shen 91274b0430
Merge pull request #20152 from AspirinSJL/group_test
Organize test cases for xds test
2019-09-04 13:41:33 -07:00
rmstar 6751e6ea43
Merge pull request #20138 from rmstar/timejumptestfix
Don't run time_jump_test under sanitizers
2019-09-04 10:47:49 -07:00
Juanli Shen c831a28dbd Organize test cases for xds test 2019-09-03 16:47:25 -07:00
Karthik Ravi Shankar a1c0d3442f Merge branch 'master' into move-method-handler 2019-09-03 14:47:45 -07:00
hcaseyal 311bf04ec9
Merge pull request #19788 from chrisse74/master
remove all unused-parameter warnings in C++
2019-09-03 13:58:13 -07:00
Arjun Roy 6175294416
Merge pull request #20014 from arjunroy/on_hdr_nobranch
s/branch/tail_call/ for CH2 on_hdr().
2019-09-03 12:44:56 -07:00
Vijay Pai c458f1cbbc
Merge pull request #20136 from grpc/revert-16452-add_msg_size_test
Revert "Test message size of 100MB"
2019-09-03 08:44:05 -07:00
Karthik Ravi Shankar ce29926334 Merge branch 'master' into move-method-handler 2019-09-03 08:08:18 -07:00
rmstar d9c9b52a68
Merge pull request #19507 from rmstar/ioscpptest_readme
Added documentation for C++ tests on iOS
2019-08-30 14:18:57 -07:00
hcaseyal fac072341c
Merge pull request #20126 from hcaseyal/bm_build
Remove build target for microbenchmark
2019-08-30 14:16:08 -07:00
Prashant Jaikumar b436758b14 Added documentation for C++ tests on iOS 2019-08-30 13:08:38 -07:00
Prashant Jaikumar 2e1cb0d91a Don't run time_jump_test under sanitizers 2019-08-30 11:43:21 -07:00
Vijay Pai 65eb9c9ddb
Revert "Test message size of 100MB" 2019-08-30 08:14:44 -07:00
Prashant Jaikumar d2b5fd75f0 Added test for time jumps 2019-08-29 22:41:06 -07:00
Hope Casey-Allen 32801fb5eb Remove build target for microbenchmark 2019-08-29 14:11:05 -07:00
Vijay Pai 1077b3435c Use range-based for on state rather than state.KeepRunning when possible 2019-08-29 11:27:00 -07:00
Juanli Shen be4318810c
Merge pull request #16452 from AspirinSJL/add_msg_size_test
Test message size of 100MB
2019-08-29 08:59:40 -07:00
Mark D. Roth fbd7ab53c7
Merge pull request #19036 from markdroth/lb_policy_per_rpc_backend_metric_api
Add API for accessing per-call backend metric data in LB policies.
2019-08-29 07:40:45 -07:00
Mark D. Roth d810671d93
Merge pull request #20039 from markdroth/health_check_service_name_change
Apply health check service name changes to existing subchannels.
2019-08-29 07:14:40 -07:00
Juanli Shen d34f366337 Test message size of 100MB 2019-08-28 21:46:53 -07:00
Prashant Jaikumar 4dfa808e75 Add test for timer expiry racing with cancelation 2019-08-28 17:09:42 -07:00
Juanli Shen 5f7f11e56e
Merge pull request #20022 from AspirinSJL/xds_test_refactor
Refactor response building in xds test
2019-08-28 16:22:29 -07:00
hcaseyal 07ba4de392
Merge pull request #20091 from hcaseyal/bm_chttp2_transport
Fix race in bm_chttp2_transport
2019-08-28 16:13:23 -07:00
Karthik Ravi Shankar de2006d3e1 Merge branch 'master' into move-method-handler 2019-08-28 14:01:58 -07:00
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).
2019-08-28 13:06:11 -07:00
Mark D. Roth 21c5424477 Add API for accessing per-call backend metric data in LB policies. 2019-08-28 12:48:06 -07:00
Juanli Shen a1ca6a099d Refactor response building in xds test 2019-08-28 12:44:31 -07:00
Juanli Shen f29aee7fa9
Merge pull request #20093 from AspirinSJL/tune_lr
Tune load reporter test
2019-08-28 10:49:15 -07:00
Hope Casey-Allen 6dfe27ab08 Fix race in bm_chttp2_transport 2019-08-28 10:07:38 -07:00
Mark D. Roth c8430023a5 Apply health check service name changes to existing subchannels. 2019-08-28 09:05:59 -07:00
Juanli Shen 732e2a1e90 Tune load reporter test 2019-08-27 15:56:59 -07:00
Vijay Pai c22afac623
Merge pull request #16733 from vjpai/generic_lifetime
Confirm that generic API method name is not needed after call creation
2019-08-27 14:40:52 -07:00
Mark D. Roth 0bdeca47b6
Merge pull request #19038 from markdroth/lb_policy_create_channel_api_improvement
Remove CreateChannel() method from LB helper API.
2019-08-27 10:54:52 -07:00
Yash Tibrewal 2ba3ad5d2a
Merge pull request #20057 from yashykt/interceptionexample1
Improve comment
2019-08-23 15:58:36 -07:00
Yash Tibrewal 088b67deba Improve comment 2019-08-23 15:06:39 -07:00
Prashant Jaikumar 2b9ab6d10c timer_test: add test case for grpc shutdown while timer is pending 2019-08-23 13:54:16 -07:00
Prashant Jaikumar 9a41e12a4f Skip timer test when running under event manager 2019-08-22 18:41:38 -07:00
Prashant Jaikumar 20e2964ada cfstream_test: workaround Apple CFStream bug 2019-08-21 22:03:48 -07:00