Commit c20faec
committed
ibmvnic: Only record tx completed bytes once per handler
jira LE-2742
Rebuild_History Non-Buildable kernel-5.14.0-503.35.1.el9_5
commit-author Nick Child <[email protected]>
commit 1c33e29
Byte Queue Limits depends on dql_completed being called once per tx
completion round in order to adjust its algorithm appropriately. The
dql->limit value is an approximation of the amount of bytes that the NIC
can consume per irq interval. If this approximation is too high then the
NIC will become over-saturated. Too low and the NIC will starve.
The dql->limit depends on dql->prev-* stats to calculate an optimal
value. If dql_completed() is called more than once per irq handler then
those prev-* values become unreliable (because they are not an accurate
representation of the previous state of the NIC) resulting in a
sub-optimal limit value.
Therefore, move the call to netdev_tx_completed_queue() to the end of
ibmvnic_complete_tx().
When performing 150 sessions of TCP rr (request-response 1 byte packets)
workloads, one could observe:
PREVIOUSLY: - limit and inflight values hovering around 130
- transaction rate of around 750k pps.
NOW: - limit rises and falls in response to inflight (130-900)
- transaction rate of around 1M pps (33% improvement)
Signed-off-by: Nick Child <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
(cherry picked from commit 1c33e29)
Signed-off-by: Jonathan Maple <[email protected]>1 parent 7cb7b98 commit c20faec
1 file changed
+5
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4020 | 4020 | | |
4021 | 4021 | | |
4022 | 4022 | | |
| 4023 | + | |
4023 | 4024 | | |
4024 | 4025 | | |
4025 | 4026 | | |
4026 | 4027 | | |
4027 | | - | |
4028 | | - | |
| 4028 | + | |
4029 | 4029 | | |
4030 | 4030 | | |
4031 | 4031 | | |
4032 | 4032 | | |
4033 | 4033 | | |
4034 | | - | |
4035 | | - | |
4036 | | - | |
4037 | 4034 | | |
4038 | 4035 | | |
4039 | 4036 | | |
| |||
4069 | 4066 | | |
4070 | 4067 | | |
4071 | 4068 | | |
4072 | | - | |
4073 | | - | |
4074 | 4069 | | |
4075 | 4070 | | |
4076 | 4071 | | |
| |||
4095 | 4090 | | |
4096 | 4091 | | |
4097 | 4092 | | |
| 4093 | + | |
| 4094 | + | |
| 4095 | + | |
4098 | 4096 | | |
4099 | 4097 | | |
4100 | 4098 | | |
| |||
0 commit comments