|
|
|
@ -66,64 +66,72 @@ typedef enum { |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_HISTOGRAM_SLOW_LOOKUPS) |
|
|
|
|
#define GRPC_STATS_INC_TCP_WRITE_SIZE(exec_ctx, value) \ |
|
|
|
|
do { \
|
|
|
|
|
double _hist_val = (double)(value); \
|
|
|
|
|
if (_hist_val < 0) _hist_val = 0; \
|
|
|
|
|
uint64_t _hist_idx = *(uint64_t *)&_hist_val; \
|
|
|
|
|
if (_hist_val < 5.000000) { \
|
|
|
|
|
union { \
|
|
|
|
|
double dbl; \
|
|
|
|
|
uint64_t uint; \
|
|
|
|
|
} _val; \
|
|
|
|
|
_val.dbl = (double)(value); \
|
|
|
|
|
if (_val.dbl < 0) _val.dbl = 0; \
|
|
|
|
|
if (_val.dbl < 5.000000) { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( \
|
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_SIZE, (int)_hist_val); \
|
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_SIZE, (int)_val.dbl); \
|
|
|
|
|
} else { \
|
|
|
|
|
if (_hist_idx < 4715268809856909312ull) { \
|
|
|
|
|
if (_val.uint < 4715268809856909312ull) { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( \
|
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_SIZE, \
|
|
|
|
|
grpc_stats_table_1[((_hist_idx - 4617315517961601024ull) >> 50)]); \
|
|
|
|
|
grpc_stats_table_1[((_val.uint - 4617315517961601024ull) >> 50)]); \
|
|
|
|
|
} else { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( \
|
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_SIZE, \
|
|
|
|
|
grpc_stats_histo_find_bucket_slow((exec_ctx), (value), \
|
|
|
|
|
grpc_stats_histo_find_bucket_slow((exec_ctx), _val.dbl, \
|
|
|
|
|
grpc_stats_table_0, 64)); \
|
|
|
|
|
} \
|
|
|
|
|
} \
|
|
|
|
|
} while (false) |
|
|
|
|
#define GRPC_STATS_INC_TCP_WRITE_IOV_SIZE(exec_ctx, value) \ |
|
|
|
|
do { \
|
|
|
|
|
double _hist_val = (double)(value); \
|
|
|
|
|
if (_hist_val < 0) _hist_val = 0; \
|
|
|
|
|
uint64_t _hist_idx = *(uint64_t *)&_hist_val; \
|
|
|
|
|
if (_hist_val < 12.000000) { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM((exec_ctx), \
|
|
|
|
|
GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE, \
|
|
|
|
|
(int)_hist_val); \
|
|
|
|
|
union { \
|
|
|
|
|
double dbl; \
|
|
|
|
|
uint64_t uint; \
|
|
|
|
|
} _val; \
|
|
|
|
|
_val.dbl = (double)(value); \
|
|
|
|
|
if (_val.dbl < 0) _val.dbl = 0; \
|
|
|
|
|
if (_val.dbl < 12.000000) { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( \
|
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE, (int)_val.dbl); \
|
|
|
|
|
} else { \
|
|
|
|
|
if (_hist_idx < 4652218415073722368ull) { \
|
|
|
|
|
if (_val.uint < 4652218415073722368ull) { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( \
|
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE, \
|
|
|
|
|
grpc_stats_table_3[((_hist_idx - 4622945017495814144ull) >> 49)]); \
|
|
|
|
|
grpc_stats_table_3[((_val.uint - 4622945017495814144ull) >> 49)]); \
|
|
|
|
|
} else { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( \
|
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE, \
|
|
|
|
|
grpc_stats_histo_find_bucket_slow((exec_ctx), (value), \
|
|
|
|
|
grpc_stats_histo_find_bucket_slow((exec_ctx), _val.dbl, \
|
|
|
|
|
grpc_stats_table_2, 64)); \
|
|
|
|
|
} \
|
|
|
|
|
} \
|
|
|
|
|
} while (false) |
|
|
|
|
#define GRPC_STATS_INC_TCP_READ_SIZE(exec_ctx, value) \ |
|
|
|
|
do { \
|
|
|
|
|
double _hist_val = (double)(value); \
|
|
|
|
|
if (_hist_val < 0) _hist_val = 0; \
|
|
|
|
|
uint64_t _hist_idx = *(uint64_t *)&_hist_val; \
|
|
|
|
|
if (_hist_val < 5.000000) { \
|
|
|
|
|
union { \
|
|
|
|
|
double dbl; \
|
|
|
|
|
uint64_t uint; \
|
|
|
|
|
} _val; \
|
|
|
|
|
_val.dbl = (double)(value); \
|
|
|
|
|
if (_val.dbl < 0) _val.dbl = 0; \
|
|
|
|
|
if (_val.dbl < 5.000000) { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM((exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_SIZE, \
|
|
|
|
|
(int)_hist_val); \
|
|
|
|
|
(int)_val.dbl); \
|
|
|
|
|
} else { \
|
|
|
|
|
if (_hist_idx < 4715268809856909312ull) { \
|
|
|
|
|
if (_val.uint < 4715268809856909312ull) { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( \
|
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_SIZE, \
|
|
|
|
|
grpc_stats_table_1[((_hist_idx - 4617315517961601024ull) >> 50)]); \
|
|
|
|
|
grpc_stats_table_1[((_val.uint - 4617315517961601024ull) >> 50)]); \
|
|
|
|
|
} else { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( \
|
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_SIZE, \
|
|
|
|
|
grpc_stats_histo_find_bucket_slow((exec_ctx), (value), \
|
|
|
|
|
grpc_stats_histo_find_bucket_slow((exec_ctx), _val.dbl, \
|
|
|
|
|
grpc_stats_table_0, 64)); \
|
|
|
|
|
} \
|
|
|
|
|
} \
|
|
|
|
|