grpc/test/core/transport
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
..
chttp2 Implement TCP_INQ for gRPC in Linux 2019-03-06 22:15:53 -05:00
BUILD Fix BUILD files. Manually edit bzl files 2018-12-06 14:37:52 -08:00
bdp_estimator_test.cc change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00
byte_stream_test.cc change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00
connectivity_state_test.cc change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00
metadata_test.cc Don't use a separate call context for subchannel calls. 2019-03-04 14:38:02 -08:00
pid_controller_test.cc change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00
status_conversion_test.cc change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00
status_metadata_test.cc Retry support. 2018-02-28 13:00:04 -08:00
stream_owned_slice_test.cc change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00
timeout_encoding_test.cc change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00