Commit Graph

258 Commits

Author SHA1 Message Date
Esun Kim ceb12c6be5
Merge pull request #19777 from veblush/upb-check
Add check_upb_output to sanity test
2019-07-29 15:17:49 -07:00
Esun Kim e45c5f021b Add check_upb_output to sanity test 2019-07-29 10:06:49 -07:00
Mark D. Roth db3d8be647 Add MetadataInterface abstraction to LB policy API. 2019-07-27 12:35:38 -07:00
Esun Kim 7e367da22a Added more protos to upb 2019-07-26 09:11:46 -07:00
Nicolas "Pixel" Noble 5495a7f7b1 Merge branch 'master' of https://github.com/grpc/grpc into moiz-upb 2019-07-16 19:07:24 +02: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
Nicolas "Pixel" Noble 3de02bc8cd Merge branch 'master' of https://github.com/grpc/grpc into moiz-upb 2019-07-03 19:54:22 +02:00
Arjun Roy d527c1fbda Pre-compute static metadata index for hpack_encoder.
Originally, hpack_encoder would check if a metadata was static or not by
comparing its pointer to the known static metadata global table and checking if
it was within bounds. This check was performed regardless of if the metadata was
static or not, and is somewhat costly.

Instead, we now pre-compute the static metadata index during code generation
time, and store it with static metadata objects. We read that value only if we
are dealing with a static metadata flag (which we know from the storage type of
the grpc_mdelem).

This yields slightly faster metadata encoding:

BM_HpackEncoderEncodeHeader<EmptyBatch>/0/16384
[framing_bytes/iter:9 header_bytes/iter:0       ]              34.9ns ± 2%
34.2ns ± 1%  -2.04%        (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<EmptyBatch>/1/16384
[framing_bytes/iter:9 header_bytes/iter:0       ]              34.9ns ± 2%
34.2ns ± 1%  -2.01%        (p=0.000 n=20+19)
BM_HpackEncoderEncodeHeader<SingleStaticElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              50.6ns ± 0%
49.2ns ± 2%  -2.74%        (p=0.000 n=18+20)
BM_HpackEncoderEncodeHeader<SingleInternedKeyElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:6       ]              84.7ns ± 1%
83.5ns ± 1%  -1.43%        (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<SingleInternedElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              50.4ns ± 0%
47.9ns ± 0%  -4.83%        (p=0.000 n=18+17)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<1, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              51.1ns ± 2%
48.9ns ± 1%  -4.32%        (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<3, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              50.8ns ± 2%
48.8ns ± 2%  -3.88%        (p=0.000 n=19+20)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<10, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              50.2ns ± 1%
47.9ns ± 0%  -4.47%        (p=0.000 n=19+16)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<31, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              50.2ns ± 0%
47.9ns ± 0%  -4.46%        (p=0.000 n=18+16)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<100, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              50.2ns ± 0%
47.9ns ± 0%  -4.40%        (p=0.000 n=19+17)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<1, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              50.7ns ± 2%
48.8ns ± 2%  -3.81%        (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<3, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              50.9ns ± 2%
48.8ns ± 2%  -4.05%        (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<10, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              50.1ns ± 0%
48.0ns ± 1%  -4.27%        (p=0.000 n=17+17)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<31, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              50.1ns ± 0%
48.0ns ± 1%  -4.28%        (p=0.000 n=18+17)
BM_HpackEncoderEncodeHeader<SingleInternedBinaryElem<100, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              50.1ns ± 0%
48.0ns ± 0%  -4.33%        (p=0.000 n=18+17)
BM_HpackEncoderEncodeHeader<SingleNonInternedElem>/0/16384
[framing_bytes/iter:9 header_bytes/iter:9       ]              91.4ns ± 1%
90.7ns ± 1%  -0.79%        (p=0.000 n=18+20)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<1, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:12      ]               116ns ± 1%
116ns ± 1%  -0.46%        (p=0.002 n=20+20)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<3, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:14      ]               122ns ± 0%
121ns ± 0%  -0.69%        (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<10, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:23      ]               144ns ± 1%
144ns ± 0%  -0.23%        (p=0.009 n=20+20)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<31, false>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:46      ]               232ns ± 0%
232ns ± 1%  -0.26%        (p=0.021 n=18+19)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<1, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:12      ]              92.9ns ± 1%
92.0ns ± 1%  -0.97%        (p=0.000 n=19+19)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<3, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:14      ]              94.0ns ± 1%
92.6ns ± 1%  -1.45%        (p=0.000 n=20+19)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<10, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:21      ]              93.9ns ± 2%
92.8ns ± 1%  -1.17%        (p=0.001 n=20+19)
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<100, true>>/0/16384
[framing_bytes/iter:9 header_bytes/iter:111     ]               106ns ± 0%
105ns ± 3%  -1.15%        (p=0.000 n=18+20)
BM_HpackEncoderEncodeHeader<SingleNonInternedElem>/0/1
[framing_bytes/iter:81 header_bytes/iter:9      ]               355ns ± 1%
354ns ± 0%  -0.35%        (p=0.015 n=19+20)
BM_HpackEncoderEncodeHeader<RepresentativeClientInitialMetadata>/0/16384
[framing_bytes/iter:9 header_bytes/iter:8.00002 ]               139ns ± 1%
133ns ± 1%  -4.46%        (p=0.000 n=19+20)
BM_HpackEncoderEncodeHeader<MoreRepresentativeClientInitialMetadata>/0/16384
[framing_bytes/iter:9 header_bytes/iter:16      ]               236ns ± 1%
231ns ± 1%  -2.24%        (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<RepresentativeServerInitialMetadata>/0/16384
[framing_bytes/iter:9 header_bytes/iter:3       ]              73.6ns ± 1%
70.5ns ± 1%  -4.14%        (p=0.000 n=20+20)
BM_HpackEncoderEncodeHeader<RepresentativeServerTrailingMetadata>/1/16384
[framing_bytes/iter:9 header_bytes/iter:1       ]              50.5ns ± 0%
49.2ns ± 2%  -2.60%        (p=0.000 n=16+20)
2019-06-28 14:23:17 -07:00
Nicolas "Pixel" Noble 27030f58aa Renaming data-plane-api to envoy-api. 2019-06-25 21:13:45 +02:00
Arjun Roy 0f83755c6e chttp2 hpack encoder: fast-pathed static md/slice ops 2019-05-28 14:40:50 -07:00
Arjun Roy f65208af02 Added slice equality when static fastpath. 2019-05-10 11:35:27 -07:00
Arjun Roy 7d946633ea grpc_slice_refcount devirtualization 2019-04-19 12:20:26 -07:00
Vishal Powar df3d5bc8f7 Add upb generated code and build rule for lrs protocol. 2019-04-09 12:03:21 -07:00
Vishal Powar e959373742 Generate upb code for cds protos and BUILD rule changes 2019-03-22 19:40:08 -07:00
Vishal Powar fb15daf8b9 Add generated upb code for endpoints information.
Also,
  - Update upb submodule for new code generator and update generated
  files.
2019-03-21 17:24:57 -07:00
Vishal Powar f569cc1b36 Add BUILD rul and generated upb code for protos required to do DiscoveryRequest to xDS server
Also,
  - cleanup check scripts to look for file extension to exempt upb
  generated code.
2019-03-15 14:16:08 -07:00
Vishal Powar 319fcdf26e Add a script for generating C code and build rule for protobuf protos.
All these changes need to go together to make sense
  - changes to use new version of upb in bazel
  - allowing includes in build target option
  - script for generating c code (upb) for protos
  - generated code for example protos
  - adding changes for non-bazel builds
  - change sanity tests to ignore the generated files.
2019-03-13 12:53:17 -07:00
Alexander Polcyn ac6795a57e Revert "Changes add a script for generating C code and build rule for protobuf"
This reverts commit 62027b7e14.
2018-12-12 11:40:25 -08:00
Vishal Powar 62027b7e14 Changes add a script for generating C code and build rule for protobuf
protos

All these changes need to go together to make sense
  - changes to use new version of upb in bazel
  - allowing includes in build target option
  - script for generating c code for protos
  - generated code for example build
  - adding changes for non-bazel builds
  - change sanity tests to ignore the generated files.
2018-12-11 14:59:02 -08:00
Vishal Powar fafde8ff21 Adding ads (data-plane-api) method name to wellknown names list.
This is the api for getting assignments from xDS server
2018-11-16 15:16:39 -08:00
Mark D. Roth f85fd026e3 Client-side health checking support. 2018-10-24 12:29:04 -07:00
Hope Casey-Allen bf4432b67e Add comment to specify hpack elements 2018-10-01 10:08:50 -07:00
Hope Casey-Allen 4772a743e8 Delete hpack lookup table 2018-09-28 13:47:04 -07:00
hcaseyal 0dd651dcea
Merge pull request #16663 from hcaseyal/delete_unecessary_callout_checks
Remove unnecessary callout_is_default checks
2018-09-20 11:01:53 -07:00
Hope Casey-Allen 091f8dd51e Remove unnecessary callout_is_default checks 2018-09-19 22:22:06 -07:00
Hope Casey-Allen 2a51d406e8 Minor cleanup to gen_static_metadadta.py 2018-09-19 14:39:33 -07:00
Hope Casey-Allen 327c514fe7 Some reorganizing to respond to code review comments 2018-09-19 13:50:25 -07:00
Hope Casey-Allen 5b27941372 Even cleaner implementation that does not modify the grpc_mdelem struct. 2018-09-12 16:34:38 -07:00
Hope Casey-Allen fba18108fa Merge branch 'hpack_static_table' of github.com:hcaseyal/grpc into hpack_static_table 2018-09-11 08:55:43 -07:00
Hope Casey-Allen 0b4e263fdf Small formatting and style changes 2018-09-11 08:52:59 -07:00
Hope Casey-Allen 4a9cd9c38b Fix codegen script to include port_platform 2018-09-10 22:30:26 -07:00
Hope Casey-Allen b731178a7c Fix codegen script to include port_platform 2018-09-10 22:29:03 -07:00
Hope Casey-Allen fbe594beeb Much cleaner approach that should address code review comments as well 2018-09-10 22:19:40 -07:00
Hope Casey-Allen 009d828341 WIP. Modifying grpc_mdelem to store the static hpack table idnex 2018-09-10 19:23:05 -07:00
Jan Tattermusch fcf533d916 try fix nanopb generation 2018-08-07 14:28:41 +02:00
David Garcia Quintas f3955ba711 Update to use the canonical version of LB proto 2018-06-21 17:46:31 -07:00
David Garcia Quintas bc9573d7ac back to using quotes for nanopb includes 2018-06-04 13:49:03 -07:00
David Garcia Quintas 99dc56758e more tweaks go output of nanopb gen 2018-06-01 16:19:58 -07:00
David Garcia Quintas 00e045dbb2 Fix the inclusion "third_party/nanopb/..." to simply "..." 2018-06-01 15:44:03 -07:00
Jan Tattermusch d8f9fe844f get rid of premature return in massage_qps_stats 2018-05-18 15:33:25 +02:00
Yash Tibrewal 31f4eee720 Clang format and yapf 2018-05-14 15:45:17 -07:00
Yash Tibrewal 519d2b1fae Cleanup stats removal for opt build. Stats will only be collected on debug builds or if GRPC_COLLECT_STATS is defined. 2018-05-14 15:17:43 -07:00
Yash Tibrewal ae3866bf6b Try removing stats 2018-05-04 15:03:08 -07:00
ncteisen 4454af55e1 Update stats generator 2018-05-01 09:45:01 -07:00
Yihua Zhang 04fb58efbd Add ALTS code to grpc/core 2018-03-08 06:49:24 -08:00
Sree Kuchibhotla ae277dd000
Revert "Add ALTS C stack to gRPC core" 2018-03-07 14:35:36 -08:00
Yihua Zhang eaf6486677 Add ALTS code to grpc/core 2018-03-06 21:40:45 -08:00
Mark D. Roth 718c8341ca Retry support. 2018-02-28 13:00:04 -08:00
Muxi Yan 3db2caaf2e Replace message/deflate,gzip with deflate,gzip 2018-02-06 18:17:42 -08:00
Muxi Yan fb061c329a Merge remote-tracking branch 'upstream/master' into fix-stream-compression-config-interface 2018-01-19 12:20:15 -08:00