Bound fault steady goodput by newly received unique DATA
This commit is contained in:
1 parent
df5f6263bd
commit
c9ba018a0d
1 file changed
+6
@@ -346,12 +346,18 @@ static void stalled(const struct profile* settings, unsigned count, unsigned bro
|
||||
uint64_t before = ep[1].bytes;
|
||||
run_for(duration_ms > 1000 ? 1000 : duration_ms, 1, "fault-transition");
|
||||
uint64_t steady_bytes = ep[1].bytes, steady_start = get_time_us();
|
||||
uint64_t steady_unique = 0;
|
||||
for (unsigned p = 0; p < count; p++) steady_unique += traffic[0][p].rx_unique;
|
||||
if (duration_ms > 1000) run_for(duration_ms - 1000, 1, "fault-steady");
|
||||
uint64_t now = get_time_us(), tail_gap = now - ep[1].last_delivery;
|
||||
if (tail_gap > ep[1].max_gap) ep[1].max_gap = tail_gap;
|
||||
uint64_t capacity = 0;
|
||||
for (unsigned p = 0; p < count; p++) if (!(broken & (1u << p))) capacity += settings[p].kbps;
|
||||
uint64_t rate = now > steady_start ? (ep[1].bytes-steady_bytes) * 8000 / (now-steady_start) : 0;
|
||||
uint64_t unique_now = 0;
|
||||
for (unsigned p = 0; p < count; p++) unique_now += traffic[0][p].rx_unique;
|
||||
uint64_t fresh_rate = now > steady_start ? (unique_now-steady_unique) * 8000 / (now-steady_start) : 0;
|
||||
if (fresh_rate < rate) rate = fresh_rate;
|
||||
DEBUG_INFO(DEBUG_CATEGORY_DEBUG, "FAULT result %s delivered=%llu gap_us=%llu p50=%llu p95=%llu p99=%llu max_latency_us=%llu "
|
||||
"steady_kbps=%llu healthy_capacity=%llu missing_seq=%u first_rx_us=%llu attempts=%u", case_name,
|
||||
(unsigned long long)(ep[1].bytes-before), (unsigned long long)ep[1].max_gap,
|
||||
|
||||
Reference in new issue
Block a user