grpc/test/core/transport/chttp2
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
..
hpack_parser_corpus Add fuzzer repro 2017-07-11 07:37:41 -07:00
BUILD Fix BUILD files. Manually edit bzl files 2018-12-06 14:37:52 -08:00
alpn_test.cc change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00
bin_decoder_test.cc Remove unnecessary includes of exec_ctx.h 2018-03-14 15:33:57 -07:00
bin_encoder_test.cc Split lib/support into lib/gpr and lib/gpr++. 2018-01-18 11:21:12 -08:00
context_list_test.cc Update context list test 2018-12-20 13:22:48 -08:00
hpack_encoder_test.cc change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00
hpack_parser_fuzzer_test.cc Remove unnecessary includes of exec_ctx.h 2018-03-14 15:33:57 -07:00
hpack_parser_test.cc change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00
hpack_table_test.cc change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00
settings_timeout_test.cc Implement TCP_INQ for gRPC in Linux 2019-03-06 22:15:53 -05:00
stream_map_test.cc change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00
varint_test.cc change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00