grpc/test/core/handshake
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
..
BUILD Fix BUILD files. Manually edit bzl files 2018-12-06 14:37:52 -08:00
client_ssl.cc Create verify_peer_options when creating ssl credentials in order to expose a verification callback option. 2018-06-12 12:59:37 -07:00
readahead_handshaker_server_ssl.cc Implement TCP_INQ for gRPC in Linux 2019-03-06 22:15:53 -05:00
server_ssl.cc C++ize gpr_thread as grpc_core::Thread, make it 2-phase init (construct/Start) 2018-02-19 22:39:58 -08:00
server_ssl_common.cc C++ize gpr_thread as grpc_core::Thread, make it 2-phase init (construct/Start) 2018-02-19 22:39:58 -08:00
server_ssl_common.h C++ize gpr_thread as grpc_core::Thread, make it 2-phase init (construct/Start) 2018-02-19 22:39:58 -08:00
verify_peer_options.cc Create verify_peer_options when creating ssl credentials in order to expose a verification callback option. 2018-06-12 12:59:37 -07:00