Fix #24 per thread throughput - #31
Open
ashish (ashyx12) wants to merge 3 commits into
Open
Conversation
Author
|
@microsoft-github-policy-service agree |
Copilot started reviewing on behalf of
Guillaume Hetier (guhetier)
August 18, 2026 16:57
View session
There was a problem hiding this comment.
Pull request overview
Decouples worker timing from optional TCP EStats collection to restore per-thread throughput reporting.
Changes:
- Records synchronous and asynchronous worker timing without
-es. - Keeps EStats snapshots conditional on
tcp_row. - Marks
GetEstatsinput as optional.
Suppressed comments (1)
src/ntttcp.c:3739
- The asynchronous path has the same EStats failure regression: a null
tcp_rowno longer preventstime0_was_set, so the exit block marks zero-initialized EStats available whenever-eswas requested. Preserve the independent worker timer, but gateestats_availableon successful begin/end EStats collection rather than the option flag.
time0_was_set = TRUE;
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Author
|
Guillaume Hetier (@guhetier) i’ve addressed the copilot review in the latest commit, including the EStats failure-path issue, and validated the changes requesting a review when you get a chance. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes per-thread throughput is always 0.00 with ntttcp version 5.40.
In v5.40, worker start/end timing was tied to
tcp_row, which is onlyinitialized when TCP EStats are enabled. As a result, normal runs without
-esleftworker_timeas zero, causing per-threadTime(s)andThroughput(KB/s)to print as0.000even though total throughput wasreported correctly.
This change records worker timing independently from EStats collection while
keeping EStats calls guarded by
tcp_row.Fixes #24 .
Validation
ntttcp.slnfile.-es: per-threadTime(s)andThroughput(KB/s)were0.000while total throughput was nonzero.-es: per-thread timing wasrecorded because
tcp_rowwas initialized.-es: per-threadTime(s)andThroughput(KB/s)are now nonzero.-espath still reports nonzero per-threadTime(s)andThroughput(KB/s)after the fix.Screenshots
Before: without
-esPer-thread
Time(s)andThroughput(KB/s)were reported as0.000, whiletotal throughput was still nonzero.
Confirmation: with
-esRunning the same command pattern with
-esrecorded nonzero per-thread time,confirming that timing was incorrectly coupled to
tcp_row.After fix: without
-esAfter the fix, the same command pattern works without
-es: per-threadTime(s)andThroughput(KB/s)are nonzero.After fix: with
-esThe
-espath still records nonzero per-threadTime(s)andThroughput(KB/s)after the timing change.Follow-up for a0a7d6e
This addresses the Copilot code review:
before marking EStats as available.
-esusing XML output:before the fix, zero-initialized EStats were emitted; after the fix,
per-thread
Time(s)andThroughput(KB/s)remain nonzero and EStats arenot emitted.
-esruns after the fix still emit valid EStats data.