Commit Graph

337 Commits

Author SHA1 Message Date
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
Mark D. Roth a04b0646de Don't use a separate call context for subchannel calls. 2019-03-04 14:38:02 -08:00
Yash Tibrewal 0c7eb8daf8 Merge branch 'master' into fathom 2018-12-20 16:16:39 -08:00
Yash Tibrewal 30e1991bf9 Update context list test 2018-12-20 13:22:48 -08:00
yang-g 67742ef63f Fix BUILD files. Manually edit bzl files 2018-12-06 14:37:52 -08:00
yang-g e75fc243da change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00
Yash Tibrewal 77ba25ab72 s/int/uint32_t 2018-11-29 02:21:19 -08:00
Yash Tibrewal 9506d35674 Add a byte counter to chttp2_stream and use that for timestamps 2018-11-29 01:26:45 -08:00
Yash Tibrewal c7e92f26eb Reviewer comments 2018-11-20 15:03:12 -08:00
Yash Tibrewal bab043e865 Cleanup 2018-11-16 18:11:42 -08:00
Yash Tibrewal fc332d2c92 Merge master 2018-11-16 11:11:04 -08:00
Guantao Liu 0c18293e55 Fix the test failure with callback-based polling. 2018-10-05 13:57:33 -07:00
Hope Casey-Allen 4cc1cd7baa Add needed include 2018-09-19 14:12:24 -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 fbe594beeb Much cleaner approach that should address code review comments as well 2018-09-10 22:19:40 -07:00
Hope Casey-Allen 97cbec1c98 WIP. Setting md_index to 0 on grpc_linked_mdelem creation 2018-09-08 17:48:42 -07:00
Hope Casey-Allen 4181c8cd37 Zero out linked_mdelem when created in test 2018-09-06 20:41:06 -07:00
Yash Tibrewal 9c5bde5e4e More commits 2018-08-26 03:50:39 -07:00
adelez 5bdd9a8cb9
Revert "Revert "Add suppressions to sanitizers for bazel builds"" 2018-06-15 16:31:21 -07:00
Nicolas Noble 43557fee0b
Revert "Add suppressions to sanitizers for bazel builds" 2018-06-14 10:49:11 -07:00
Adele Zhou 4cd659505c Add data param to grpc_cc_library 2018-06-13 15:36:28 -07:00
ncteisen eb2aa9cb3b Tighten the bar and refactor and offender: 2018-06-07 22:28:16 -07:00
Juanli Shen 7b50c5533b
Merge pull request #15418 from AspirinSJL/smaller_hpack
Decrease GRPC_CHTTP2_HPACKC_NUM_VALUES
2018-06-01 20:03:08 -07:00
Juanli Shen 3c3f3ad75a Decrease GRPC_CHTTP2_HPACKC_NUM_VALUES 2018-06-01 10:21:14 -07:00
Sree Kuchibhotla 1dd12c084a Fix some more formatting issues 2018-04-16 12:09:37 -07:00
Yash Tibrewal c0cd82faed Remove unnecessary includes of exec_ctx.h 2018-03-14 15:33:57 -07:00
Mark D. Roth 3d8b32d8b3 Convert byte_stream API to C++. 2018-03-09 13:25:40 -08:00
Mark D. Roth 718c8341ca Retry support. 2018-02-28 13:00:04 -08:00
Muxi Yan 6c9a87c174 Polish infer_length_after_decode and add test cases 2018-02-21 16:06:25 -08:00
Noah Eisen 4d20a66685 Run clang fmt 2018-02-09 09:34:04 -08:00
Noah Eisen be82e64b3d Autofix c casts to c++ casts 2018-02-09 09:16:55 -08:00
Vijay Pai d4d0a30c6f Privatize useful.h and avl.h 2018-02-02 09:16:44 -08:00
Jan Tattermusch 8376749faa fix EventState::done() data race 2018-01-30 12:17:44 +01:00
Mark D. Roth dbdf495f61 Split lib/support into lib/gpr and lib/gpr++. 2018-01-18 11:21:12 -08:00
Vijay Pai 9423c274cd Need to include functional to use std::bind 2018-01-08 14:22:47 -08:00
Yash Tibrewal 8cf1470a51
Revert "Revert "All instances of exec_ctx being passed around in src/core removed"" 2017-12-06 09:47:54 -08:00
Yash Tibrewal ad4d2dde00
Revert "All instances of exec_ctx being passed around in src/core removed" 2017-12-06 09:05:05 -08:00
Yash Tibrewal 73bb67d054 Merge master into execctx 2017-12-05 17:49:11 -08:00
Mark D. Roth e109ddf89f Merge remote-tracking branch 'upstream/master' into server_connection_timeout 2017-12-01 08:56:25 -08:00
Yash Tibrewal 36522e9f80 Merge master after no Extern C changes 2017-11-30 17:47:36 -08:00
Yash Tibrewal c354269ba7 Remove _ prefixed variable names 2017-11-29 19:07:44 -08:00
Mark D. Roth ca014e4d5e Clean up semantics of test code. 2017-11-29 11:34:58 -08:00
Yash Tibrewal 81fc8c9c33 Fix tests to call grpc_init and grpc_shutdown before using exec_ctx 2017-11-28 13:23:36 -08:00
ncteisen fe354eb807 Fix the fuzzers 2017-11-28 12:05:14 -08:00
Mark D. Roth 39dd9aa439 Fix BUILD file. 2017-11-27 13:50:33 -08:00
Mark D. Roth d0f56a9997 Fix sanity problem. 2017-11-27 09:38:55 -08:00
Mark D. Roth aaad0c2e5a clang-format 2017-11-27 08:31:50 -08:00
Yash Tibrewal a13a8c0f3e A few src/core fixes due to missing exec_ctx_finish 2017-11-21 19:38:09 -08:00
Yash Tibrewal 7486144de0 Merge master 2017-11-21 16:52:06 -08:00