Performance degradation for smoltcp 0.7 #127
Labels
No Milestone
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: M-Labs/artiq-zynq#127
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I've tried the latest release for smoltcp, and got some regression:
Previously we have:
After updating smoltcp:
Could this be related to smoltcp/smoltcp#408? I haven't check it with wireshark.
It's actually due to https://github.com/smoltcp-rs/smoltcp/issues/404
TCP delayed ack is now disabled with
fcb38fae6c
.OK, thanks for tracking this down!
Now:
The more I think about delayed acks and read up on them, the more I'm getting the impression that this is the expected downside. We bet the delayed ack timeout for adding window updates and response data to acking received data. There are gains if we're decide to optimize settings instead of disabling delayed acks.
Cora Z7 baseline with delayed acks disabled
Cora Z7 with 256KB TCP RX buffers and delayed acks at 1ms
Larger RX buffers let the window grow larger. Delayed acks at 1ms instead of smoltcp's default 10ms leaves opportunity to combine acks while not wasting too much time.
There's not an improvement in every case but in some. YMMV.