git: 618083e96701 - stable/14 - e1000: Bump 82574/82583 PBA to 32K
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 11 Dec 2025 20:44:27 UTC
The branch stable/14 has been updated by kbowling:
URL: https://cgit.FreeBSD.org/src/commit/?id=618083e96701c4c1ca197fa5d9a677471785515b
commit 618083e96701c4c1ca197fa5d9a677471785515b
Author: Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2025-11-21 05:02:00 +0000
Commit: Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2025-12-11 20:44:00 +0000
e1000: Bump 82574/82583 PBA to 32K
The reporter contacted me with packet loss and throughput fluctuations
on a low power machine (Intel J1900) that got worse with the recent AIM
algorithm in FreeBSD 14.2+.
32K RX PBA matches Linux default. Add a conditional path since we don't
otherwise do a fixup for jumbo frames to retain space for two frames in
Tx.
With this change and an additional errata change, the throughput meets
line rate for the reporter.
Reported by: Codin <codin@nagi.ftp.sh>
Tested by: Codin <codin@nagi.ftp.sh>
(cherry picked from commit aa30bab9a92e1be230b9708bff9f33aae7d384e5)
---
sys/dev/e1000/if_em.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c
index ce4269728903..0a25f4ec46b5 100644
--- a/sys/dev/e1000/if_em.c
+++ b/sys/dev/e1000/if_em.c
@@ -3105,9 +3105,13 @@ em_reset(if_ctx_t ctx)
case e1000_82573:
pba = E1000_PBA_12K; /* 12K for Rx, 20K for Tx */
break;
+ /* 82574/82583: Total Packet Buffer is 40K */
case e1000_82574:
case e1000_82583:
- pba = E1000_PBA_20K; /* 20K for Rx, 20K for Tx */
+ if (hw->mac.max_frame_size > 8192)
+ pba = E1000_PBA_22K; /* 22K for Rx, 18K for Tx */
+ else
+ pba = E1000_PBA_32K; /* 32K for RX, 8K for Tx */
break;
case e1000_ich8lan:
pba = E1000_PBA_8K;