git: a42c3e61504b - stable/13 - e1000: Remove old itr sysctl handler
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 03 Dec 2024 04:02:09 UTC
The branch stable/13 has been updated by kbowling:
URL: https://cgit.FreeBSD.org/src/commit/?id=a42c3e61504b136ad9eecbd2ba0c763035dd1b7d
commit a42c3e61504b136ad9eecbd2ba0c763035dd1b7d
Author: Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2024-11-29 06:23:23 +0000
Commit: Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2024-12-03 04:01:53 +0000
e1000: Remove old itr sysctl handler
This implementation had various bugs. bde@ reported that the unit
conversion/scaling is wrong, and it also does not handle 82574L or
igb(4) devices correctly.
With the new AIM code, it is expected most users will not need to
manually tune this.
If you do need static control:
hw.em.enable_aim=0 for all interfaces at boot or dev.em.X.enable_aim=0
for individual interfaces at runtime and they will track the
hw.em.max_interrupt_rate tunable. That codepath has been bugfixed for
all supported chipsets.
You may view the current rate with dev.em.X.queue_rx_0.interrupt_rate
which has been bugfixed for all supported chipsets.
If you need to set different rates per interface for some reason let me
know and I will rethink how to add this back. Otherwise you can leave
AIM on for general purpose interfaces and disable it at runtime on
special purpose low or high latency interfaces that would track
hw.em.max_interrupt_rate if you have a mix of concerns.
PR: 235031
Reported by: Bruce Evans <bde@FreeBSD.org>
Relnotes: yes
Sponsored by: BBOX.io
(cherry picked from commit 4020351325c02cc27aa4992c199ff18a9542a52c)
---
sys/dev/e1000/if_em.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c
index 1a5dbe2335ba..fcf1ccbd9a3e 100644
--- a/sys/dev/e1000/if_em.c
+++ b/sys/dev/e1000/if_em.c
@@ -1236,10 +1236,6 @@ em_if_attach_pre(if_ctx_t ctx)
"transmit interrupt delay limit in usecs",
&sc->tx_abs_int_delay,
E1000_REGISTER(hw, E1000_TADV), em_tx_abs_int_delay_dflt);
- em_add_int_delay_sysctl(sc, "itr",
- "interrupt delay limit in usecs/4", &sc->tx_itr,
- E1000_REGISTER(hw, E1000_ITR),
- EM_INTS_TO_ITR(em_max_interrupt_rate));
}
hw->mac.autoneg = DO_AUTO_NEG;
@@ -5405,8 +5401,6 @@ em_sysctl_int_delay(SYSCTL_HANDLER_ARGS)
return (EINVAL);
info->value = usecs;
ticks = EM_USECS_TO_TICKS(usecs);
- if (info->offset == E1000_ITR) /* units are 256ns here */
- ticks *= 4;
sc = info->sc;