Commit 1919b39
net: mana: Fix perf regression: remove rx_cqes, tx_cqes counters
The apc->eth_stats.rx_cqes is one per NIC (vport), and it's on the
frequent and parallel code path of all queues. So, r/w into this
single shared variable by many threads on different CPUs creates a
lot caching and memory overhead, hence perf regression. And, it's
not accurate due to the high volume concurrent r/w.
For example, a workload is iperf with 128 threads, and with RPS
enabled. We saw perf regression of 25% with the previous patch
adding the counters. And this patch eliminates the regression.
Since the error path of mana_poll_rx_cq() already has warnings, so
keeping the counter and convert it to a per-queue variable is not
necessary. So, just remove this counter from this high frequency
code path.
Also, remove the tx_cqes counter for the same reason. We have
warnings & other counters for errors on that path, and don't need
to count every normal cqe processing.
Cc: stable@vger.kernel.org
Fixes: bd7fc6e ("net: mana: Add new MANA VF performance counters for easier troubleshooting")
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Reviewed-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Link: https://lore.kernel.org/r/1685115537-31675-1-git-send-email-haiyangz@microsoft.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>1 parent 111d467 commit 1919b39
3 files changed
Lines changed: 0 additions & 14 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1279 | 1279 | | |
1280 | 1280 | | |
1281 | 1281 | | |
1282 | | - | |
1283 | | - | |
1284 | 1282 | | |
1285 | 1283 | | |
1286 | 1284 | | |
| |||
1363 | 1361 | | |
1364 | 1362 | | |
1365 | 1363 | | |
1366 | | - | |
1367 | | - | |
1368 | 1364 | | |
1369 | 1365 | | |
1370 | 1366 | | |
| |||
1626 | 1622 | | |
1627 | 1623 | | |
1628 | 1624 | | |
1629 | | - | |
1630 | 1625 | | |
1631 | 1626 | | |
1632 | | - | |
1633 | | - | |
1634 | 1627 | | |
1635 | 1628 | | |
1636 | 1629 | | |
1637 | | - | |
1638 | 1630 | | |
1639 | 1631 | | |
1640 | 1632 | | |
| |||
1646 | 1638 | | |
1647 | 1639 | | |
1648 | 1640 | | |
1649 | | - | |
1650 | | - | |
1651 | 1641 | | |
1652 | 1642 | | |
1653 | 1643 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
17 | 16 | | |
18 | 17 | | |
19 | 18 | | |
20 | | - | |
21 | 19 | | |
22 | 20 | | |
23 | 21 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
347 | 347 | | |
348 | 348 | | |
349 | 349 | | |
350 | | - | |
351 | 350 | | |
352 | 351 | | |
353 | | - | |
354 | 352 | | |
355 | 353 | | |
356 | 354 | | |
| |||
0 commit comments