|  | @@ -101,8 +101,6 @@ class TrickledCHTTP2 : public EndpointPairFixture {
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    void AddToLabel(std::ostream& out, benchmark::State& state) {
 | 
	
		
			
				|  |  | -    grpc_chttp2_transport* client =
 | 
	
		
			
				|  |  | -        reinterpret_cast<grpc_chttp2_transport*>(client_transport_);
 | 
	
		
			
				|  |  |      out << " writes/iter:"
 | 
	
		
			
				|  |  |          << ((double)stats_.num_writes / (double)state.iterations())
 | 
	
		
			
				|  |  |          << " cli_transport_stalls/iter:"
 | 
	
	
		
			
				|  | @@ -118,8 +116,7 @@ class TrickledCHTTP2 : public EndpointPairFixture {
 | 
	
		
			
				|  |  |              (double)state.iterations())
 | 
	
		
			
				|  |  |          << " svr_stream_stalls/iter:"
 | 
	
		
			
				|  |  |          << ((double)server_stats_.streams_stalled_due_to_stream_flow_control /
 | 
	
		
			
				|  |  | -            (double)state.iterations())
 | 
	
		
			
				|  |  | -        << " cli_bw_est:" << (double)client->bdp_estimator.bw_est;
 | 
	
		
			
				|  |  | +            (double)state.iterations());
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    void Log(int64_t iteration) {
 | 
	
	
		
			
				|  | @@ -180,7 +177,6 @@ class TrickledCHTTP2 : public EndpointPairFixture {
 | 
	
		
			
				|  |  |      size_t server_backlog =
 | 
	
		
			
				|  |  |          grpc_trickle_endpoint_trickle(&exec_ctx, endpoint_pair_.server);
 | 
	
		
			
				|  |  |      grpc_exec_ctx_finish(&exec_ctx);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      if (update_stats) {
 | 
	
		
			
				|  |  |        UpdateStats((grpc_chttp2_transport*)client_transport_, &client_stats_,
 | 
	
		
			
				|  |  |                    client_backlog);
 | 
	
	
		
			
				|  | @@ -374,7 +370,7 @@ static void BM_PumpUnbalancedUnary_Trickle(benchmark::State& state) {
 | 
	
		
			
				|  |  |          stub->AsyncEcho(&cli_ctx, send_request, fixture->cq()));
 | 
	
		
			
				|  |  |      void* t;
 | 
	
		
			
				|  |  |      bool ok;
 | 
	
		
			
				|  |  | -    TrickleCQNext(fixture.get(), &t, &ok, state.iterations());
 | 
	
		
			
				|  |  | +    TrickleCQNext(fixture.get(), &t, &ok, in_warmup ? -1 : state.iterations());
 | 
	
		
			
				|  |  |      GPR_ASSERT(ok);
 | 
	
		
			
				|  |  |      GPR_ASSERT(t == tag(0) || t == tag(1));
 | 
	
		
			
				|  |  |      intptr_t slot = reinterpret_cast<intptr_t>(t);
 | 
	
	
		
			
				|  | @@ -382,7 +378,8 @@ static void BM_PumpUnbalancedUnary_Trickle(benchmark::State& state) {
 | 
	
		
			
				|  |  |      senv->response_writer.Finish(send_response, Status::OK, tag(3));
 | 
	
		
			
				|  |  |      response_reader->Finish(&recv_response, &recv_status, tag(4));
 | 
	
		
			
				|  |  |      for (int i = (1 << 3) | (1 << 4); i != 0;) {
 | 
	
		
			
				|  |  | -      TrickleCQNext(fixture.get(), &t, &ok, state.iterations());
 | 
	
		
			
				|  |  | +      TrickleCQNext(fixture.get(), &t, &ok,
 | 
	
		
			
				|  |  | +                    in_warmup ? -1 : state.iterations());
 | 
	
		
			
				|  |  |        GPR_ASSERT(ok);
 | 
	
		
			
				|  |  |        int tagnum = (int)reinterpret_cast<intptr_t>(t);
 | 
	
		
			
				|  |  |        GPR_ASSERT(i & (1 << tagnum));
 | 
	
	
		
			
				|  | @@ -419,17 +416,15 @@ static void BM_PumpUnbalancedUnary_Trickle(benchmark::State& state) {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static void UnaryTrickleArgs(benchmark::internal::Benchmark* b) {
 | 
	
		
			
				|  |  | -  // A selection of interesting numbers
 | 
	
		
			
				|  |  | -  const int cli_1024k = 1024 * 1024;
 | 
	
		
			
				|  |  | -  const int cli_32M = 32 * 1024 * 1024;
 | 
	
		
			
				|  |  | -  const int svr_256k = 256 * 1024;
 | 
	
		
			
				|  |  | -  const int svr_4M = 4 * 1024 * 1024;
 | 
	
		
			
				|  |  | -  const int svr_64M = 64 * 1024 * 1024;
 | 
	
		
			
				|  |  |    for (int bw = 64; bw <= 128 * 1024 * 1024; bw *= 16) {
 | 
	
		
			
				|  |  | -    for (auto svr : {svr_256k, svr_4M, svr_64M}) {
 | 
	
		
			
				|  |  | -      for (auto cli : {cli_1024k, cli_32M}) {
 | 
	
		
			
				|  |  | -        b->Args({cli, svr, bw});
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +    b->Args({1, 1, bw});
 | 
	
		
			
				|  |  | +    for (int i = 64; i <= 128 * 1024 * 1024; i *= 64) {
 | 
	
		
			
				|  |  | +      double expected_time =
 | 
	
		
			
				|  |  | +          static_cast<double>(14 + i) / (125.0 * static_cast<double>(bw));
 | 
	
		
			
				|  |  | +      if (expected_time > 2.0) continue;
 | 
	
		
			
				|  |  | +      b->Args({i, 1, bw});
 | 
	
		
			
				|  |  | +      b->Args({1, i, bw});
 | 
	
		
			
				|  |  | +      b->Args({i, i, bw});
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 |