|
|
|
@ -91,17 +91,20 @@ void grpc_stats_inc_tcp_write_size(grpc_exec_ctx *exec_ctx, int value) { |
|
|
|
|
union { |
|
|
|
|
double dbl; |
|
|
|
|
uint64_t uint; |
|
|
|
|
} _val; |
|
|
|
|
} _val, _bkt; |
|
|
|
|
_val.dbl = value; |
|
|
|
|
if (_val.uint < 4682617712558473216ull) { |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( |
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_SIZE, |
|
|
|
|
grpc_stats_table_1[((_val.uint - 4617315517961601024ull) >> 50)] + 4); |
|
|
|
|
int bucket = |
|
|
|
|
grpc_stats_table_1[((_val.uint - 4617315517961601024ull) >> 50)] + 5; |
|
|
|
|
_bkt.dbl = grpc_stats_table_0[bucket]; |
|
|
|
|
bucket -= (_val.uint < _bkt.uint); |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM((exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_SIZE, |
|
|
|
|
bucket); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM((exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_SIZE, |
|
|
|
|
grpc_stats_histo_find_bucket_slow( |
|
|
|
|
(exec_ctx), _val.dbl, grpc_stats_table_0, 64)); |
|
|
|
|
(exec_ctx), value, grpc_stats_table_0, 64)); |
|
|
|
|
} |
|
|
|
|
void grpc_stats_inc_tcp_write_iov_size(grpc_exec_ctx *exec_ctx, int value) { |
|
|
|
|
value = GPR_CLAMP(value, 0, 1024); |
|
|
|
@ -113,17 +116,20 @@ void grpc_stats_inc_tcp_write_iov_size(grpc_exec_ctx *exec_ctx, int value) { |
|
|
|
|
union { |
|
|
|
|
double dbl; |
|
|
|
|
uint64_t uint; |
|
|
|
|
} _val; |
|
|
|
|
} _val, _bkt; |
|
|
|
|
_val.dbl = value; |
|
|
|
|
if (_val.uint < 4637300241308057600ull) { |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( |
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE, |
|
|
|
|
grpc_stats_table_3[((_val.uint - 4622945017495814144ull) >> 48)] + 11); |
|
|
|
|
int bucket = |
|
|
|
|
grpc_stats_table_3[((_val.uint - 4622945017495814144ull) >> 48)] + 12; |
|
|
|
|
_bkt.dbl = grpc_stats_table_2[bucket]; |
|
|
|
|
bucket -= (_val.uint < _bkt.uint); |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM((exec_ctx), |
|
|
|
|
GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE, bucket); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM((exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE, |
|
|
|
|
grpc_stats_histo_find_bucket_slow( |
|
|
|
|
(exec_ctx), _val.dbl, grpc_stats_table_2, 64)); |
|
|
|
|
(exec_ctx), value, grpc_stats_table_2, 64)); |
|
|
|
|
} |
|
|
|
|
void grpc_stats_inc_tcp_read_size(grpc_exec_ctx *exec_ctx, int value) { |
|
|
|
|
value = GPR_CLAMP(value, 0, 16777216); |
|
|
|
@ -135,17 +141,20 @@ void grpc_stats_inc_tcp_read_size(grpc_exec_ctx *exec_ctx, int value) { |
|
|
|
|
union { |
|
|
|
|
double dbl; |
|
|
|
|
uint64_t uint; |
|
|
|
|
} _val; |
|
|
|
|
} _val, _bkt; |
|
|
|
|
_val.dbl = value; |
|
|
|
|
if (_val.uint < 4682617712558473216ull) { |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( |
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_SIZE, |
|
|
|
|
grpc_stats_table_1[((_val.uint - 4617315517961601024ull) >> 50)] + 4); |
|
|
|
|
int bucket = |
|
|
|
|
grpc_stats_table_1[((_val.uint - 4617315517961601024ull) >> 50)] + 5; |
|
|
|
|
_bkt.dbl = grpc_stats_table_0[bucket]; |
|
|
|
|
bucket -= (_val.uint < _bkt.uint); |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM((exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_SIZE, |
|
|
|
|
bucket); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM((exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_SIZE, |
|
|
|
|
grpc_stats_histo_find_bucket_slow( |
|
|
|
|
(exec_ctx), _val.dbl, grpc_stats_table_0, 64)); |
|
|
|
|
(exec_ctx), value, grpc_stats_table_0, 64)); |
|
|
|
|
} |
|
|
|
|
void grpc_stats_inc_tcp_read_offer(grpc_exec_ctx *exec_ctx, int value) { |
|
|
|
|
value = GPR_CLAMP(value, 0, 16777216); |
|
|
|
@ -157,17 +166,20 @@ void grpc_stats_inc_tcp_read_offer(grpc_exec_ctx *exec_ctx, int value) { |
|
|
|
|
union { |
|
|
|
|
double dbl; |
|
|
|
|
uint64_t uint; |
|
|
|
|
} _val; |
|
|
|
|
} _val, _bkt; |
|
|
|
|
_val.dbl = value; |
|
|
|
|
if (_val.uint < 4682617712558473216ull) { |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( |
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_OFFER, |
|
|
|
|
grpc_stats_table_1[((_val.uint - 4617315517961601024ull) >> 50)] + 4); |
|
|
|
|
int bucket = |
|
|
|
|
grpc_stats_table_1[((_val.uint - 4617315517961601024ull) >> 50)] + 5; |
|
|
|
|
_bkt.dbl = grpc_stats_table_0[bucket]; |
|
|
|
|
bucket -= (_val.uint < _bkt.uint); |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM((exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_OFFER, |
|
|
|
|
bucket); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM((exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_OFFER, |
|
|
|
|
grpc_stats_histo_find_bucket_slow( |
|
|
|
|
(exec_ctx), _val.dbl, grpc_stats_table_0, 64)); |
|
|
|
|
(exec_ctx), value, grpc_stats_table_0, 64)); |
|
|
|
|
} |
|
|
|
|
void grpc_stats_inc_tcp_read_iov_size(grpc_exec_ctx *exec_ctx, int value) { |
|
|
|
|
value = GPR_CLAMP(value, 0, 1024); |
|
|
|
@ -179,17 +191,20 @@ void grpc_stats_inc_tcp_read_iov_size(grpc_exec_ctx *exec_ctx, int value) { |
|
|
|
|
union { |
|
|
|
|
double dbl; |
|
|
|
|
uint64_t uint; |
|
|
|
|
} _val; |
|
|
|
|
} _val, _bkt; |
|
|
|
|
_val.dbl = value; |
|
|
|
|
if (_val.uint < 4637300241308057600ull) { |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( |
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_IOV_SIZE, |
|
|
|
|
grpc_stats_table_3[((_val.uint - 4622945017495814144ull) >> 48)] + 11); |
|
|
|
|
int bucket = |
|
|
|
|
grpc_stats_table_3[((_val.uint - 4622945017495814144ull) >> 48)] + 12; |
|
|
|
|
_bkt.dbl = grpc_stats_table_2[bucket]; |
|
|
|
|
bucket -= (_val.uint < _bkt.uint); |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM((exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_IOV_SIZE, |
|
|
|
|
bucket); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM((exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_IOV_SIZE, |
|
|
|
|
grpc_stats_histo_find_bucket_slow( |
|
|
|
|
(exec_ctx), _val.dbl, grpc_stats_table_2, 64)); |
|
|
|
|
(exec_ctx), value, grpc_stats_table_2, 64)); |
|
|
|
|
} |
|
|
|
|
void grpc_stats_inc_http2_send_message_size(grpc_exec_ctx *exec_ctx, |
|
|
|
|
int value) { |
|
|
|
@ -202,18 +217,21 @@ void grpc_stats_inc_http2_send_message_size(grpc_exec_ctx *exec_ctx, |
|
|
|
|
union { |
|
|
|
|
double dbl; |
|
|
|
|
uint64_t uint; |
|
|
|
|
} _val; |
|
|
|
|
} _val, _bkt; |
|
|
|
|
_val.dbl = value; |
|
|
|
|
if (_val.uint < 4682617712558473216ull) { |
|
|
|
|
int bucket = |
|
|
|
|
grpc_stats_table_1[((_val.uint - 4617315517961601024ull) >> 50)] + 5; |
|
|
|
|
_bkt.dbl = grpc_stats_table_0[bucket]; |
|
|
|
|
bucket -= (_val.uint < _bkt.uint); |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( |
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE, |
|
|
|
|
grpc_stats_table_1[((_val.uint - 4617315517961601024ull) >> 50)] + 4); |
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE, bucket); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
GRPC_STATS_INC_HISTOGRAM((exec_ctx), |
|
|
|
|
GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE, |
|
|
|
|
grpc_stats_histo_find_bucket_slow( |
|
|
|
|
(exec_ctx), _val.dbl, grpc_stats_table_0, 64)); |
|
|
|
|
(exec_ctx), value, grpc_stats_table_0, 64)); |
|
|
|
|
} |
|
|
|
|
const int grpc_stats_histo_buckets[6] = {64, 64, 64, 64, 64, 64}; |
|
|
|
|
const int grpc_stats_histo_start[6] = {0, 64, 128, 192, 256, 320}; |
|
|
|
|