Commit Graph

60 Commits

Author SHA1 Message Date
Yash Tibrewal 56a0153f16 Heap allocate the stream object for other benchmark cases too 2019-06-14 14:44:49 -07:00
Yash Tibrewal cceca10a8a Fix data race, heap use-after-free issue in bm_chttp2_transport 2019-06-13 17:05:51 -07:00
Esun Kim e18ed03c04 Made gRPC inialized after entering main function in microbenchmarks. 2019-05-02 16:58:37 -07:00
Arjun Roy 8ce42f67b2 Shrink arena size by 40 bytes and add additional
alignment options (for cache-alignment).

We shrink by:
1) Removing an unnecessary zone pointer.
2) Replacing gpr_mu (40 bytes when using pthread_mutex_t) with
std::atomic_flag.

We also header-inline the fastpath alloc (ie. when not doing a zone
alloc) and move the malloc() for a zone alloc outside of the mutex
critical zone, which allows us to replace the mutex with a spinlock.

We also cache-align created arenas.
2019-04-24 16:39:03 -07:00
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
Vijay Pai fab05d336c Dynamic callback requesting, graceful server shutdown, and separate ExecCtx for callbacks 2019-01-23 11:21:50 -08:00
Yash Tibrewal bab043e865 Cleanup 2018-11-16 18:11:42 -08:00
Soheil Hassas Yeganeh 48e4a81b05 Remeve memset(0) from arena allocated memory.
Callers are updated to properly initialize the memory.

This behavior can be overridden using GRPC_ARENA_INIT_STRATEGY
environment variable.
2018-11-05 10:12:39 -05:00
Yash Tibrewal 8d47cd4992
Revert "Revert "Fathom tcp changes"" 2018-08-27 14:56:01 -07:00
Jan Tattermusch 97ba943f17
Revert "Fathom tcp changes" 2018-08-27 12:43:20 +02:00
Yash Tibrewal f0397933b0 Fathom TCP level changes. TracedBuffer for keeping track of all buffers
to be traced. Adding tests for Fathom and TracedBuffer. A lot more.
Please read PR description.
2018-07-16 16:28:15 -07:00
ncteisen 40ec89ff67 Support microbenchmarks internally 2018-04-25 17:41:23 -07:00
Mark D. Roth 41c396ec88
Merge pull request #14607 from markdroth/c++_byte_stream
Convert byte_stream API to C++.
2018-03-12 11:05:36 -07:00
Mark D. Roth 3d8b32d8b3 Convert byte_stream API to C++. 2018-03-09 13:25:40 -08:00
Vijay Pai c90a85649b Change grpc++ references in names to grpcpp 2018-03-08 22:04:59 -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
Yash Tibrewal c354269ba7 Remove _ prefixed variable names 2017-11-29 19:07:44 -08:00
Yash Tibrewal 177039b2f8 Merge master 2017-11-16 19:31:28 -08:00
Mark D. Roth 03610f672e Merge remote-tracking branch 'upstream/master' into server_connection_timeout 2017-11-15 12:54:28 -08:00
Yash Tibrewal 6c26b16fe0 Move ExecCtx to grpc_core namespace. Make exec_ctx a private static in ExecCtx and some minor changes 2017-11-14 18:11:22 -08:00
Yash Tibrewal 75122c2357 Address some PR comments 2017-11-14 01:36:28 -08:00
Craig Tiller 4ac2b8e585 Enable clang-tidy as a sanity check, fix up all known failures 2017-11-10 14:14:17 -08:00
Yash Tibrewal 0032548674 Correction to closure.cc,bm_chttp2_hpack and few more 2017-11-10 10:48:15 -08:00
Yash Tibrewal 3150744c71 Removing more exec_ctx instances 2017-11-09 18:27:37 -08:00
Mark D. Roth 04c97d0e0d Add notify_on_receive_settings closure to chttp2 transport. 2017-11-09 09:14:14 -08:00
Craig Tiller baa14a975e Update clang-format to 5.0 2017-11-03 09:09:36 -07:00
Yuchen Zeng c01c7cbd85 Merge pull request #12219 from y-zeng/http2_connector
Add the endpoint used by the handshake process to connector's pollset_set
2017-10-24 11:54:29 -07:00
Yuchen Zeng 6a0874b405 Fix bm_chttp2_transport 2017-10-23 20:47:53 -07:00
Craig Tiller 3273648a87 flow control fixes 2017-10-12 22:02:28 -07:00
Craig Tiller 99fafa17a3 Fix compilation 2017-10-11 08:26:32 -07:00
Craig Tiller bbe282f600 Merge github.com:grpc/grpc into grpc_millis 2017-09-11 12:11:40 -07:00
Craig Tiller dfc6cffdf8 Merge github.com:grpc/grpc into write_completion 2017-09-07 14:48:40 -07:00
Mark D. Roth 764cf04a13 Revert "Revert "Implement call combiner""
This reverts commit bf19961d0a.
2017-09-01 09:00:06 -07:00
Craig Tiller 8fd40d5ed9 Merge github.com:grpc/grpc into wc 2017-08-31 10:54:11 -07:00
Mark D. Roth bf19961d0a Revert "Implement call combiner" 2017-08-29 16:59:07 -07:00
Craig Tiller d9b82bdecb Merge github.com:grpc/grpc into grpc_millis 2017-08-29 12:16:56 -07:00
Mark D. Roth 76e264b8df Implement call combiner. 2017-08-25 09:03:33 -07:00
Craig Tiller 4c0ac4a9f5 Fix fix fix chttp2_transport 2017-07-21 10:38:18 -07:00
Craig Tiller cbb384007e Fix bm_chttp2_transport 2017-07-21 09:52:25 -07:00
Craig Tiller 89c1428a60 Propagate grpc_millis further 2017-07-19 15:32:27 -07:00
ncteisen 3c909d55fd Pull out flow control objects 2017-07-18 17:06:58 -07:00
ncteisen 06f052b35d Get rid of local window, fix qps worker 2017-07-18 17:06:58 -07:00
ncteisen 268a82398c Pull flow control into one module 2017-07-18 17:06:57 -07:00
ncteisen 274bbbe6a0 Add rich closure debug mode 2017-06-08 15:29:29 -07:00
Craig Tiller b3899fd18b Merge github.com:grpc/grpc into ALL-the-things 2017-06-08 07:54:10 -07:00
Jan Tattermusch 7897ae9308 auto-fix most of licenses 2017-06-08 11:22:41 +02:00
Craig Tiller d8e896ecd7 Remove function 2017-05-24 15:55:43 -07:00
Muxi Yan 29723ee1ba Revert "Revert "Implement lazy deframe"" 2017-04-12 20:24:42 -07:00