git: 871efe1300e3 - stable/15 - em(4): document adaptive interrupt moderation

Kevin Bowling <[email protected]> Sun, 02 Aug 2026 04:23:01 +0000
Newsgroups gmane.os.freebsd.devel.cvs.src
Message-ID <6a6ec625.3c214.5b17f39b__21629.4650266477$1785644954$gmane$org@gitrepo.freebsd.org>
The branch stable/15 has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=871efe1300e3db4c6f49d751d37108592cec869b

commit 871efe1300e3db4c6f49d751d37108592cec869b
Author:     Kevin Bowling <[email protected]>
AuthorDate: 2026-07-25 22:09:48 +0000
Commit:     Kevin Bowling <[email protected]>
CommitDate: 2026-08-02 04:21:05 +0000

    em(4): document adaptive interrupt moderation
    
    Describe the disabled, adaptive, and low-latency settings and their
    interrupt-rate tradeoffs.
    
    (cherry picked from commit b6b379b94781da5d4328f6f57273fbe7bd9dc687)
---
 share/man/man4/em.4 | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/share/man/man4/em.4 b/share/man/man4/em.4
index 0e9c08560545..4835d41320b2 100644
--- a/share/man/man4/em.4
+++ b/share/man/man4/em.4
@@ -272,6 +272,20 @@ interrupt is generated.
 .It Va hw.em.max_interrupt_rate
 Maximum interrupts per second.
 The default value is 8000.
+This is the rate used when adaptive interrupt moderation is disabled, and
+the fallback when it has no usable measurement.
+.It Va hw.em.enable_aim
+Adaptive interrupt moderation.
+The interrupt rate is derived from the average size of the packets seen
+since the previous interrupt, so that bulk traffic is coalesced while small
+packet traffic keeps its latency.
+A value of 0 disables it and pins the rate to
+.Va hw.em.max_interrupt_rate ,
+1 selects the normal range, and 2 selects the low-latency range.
+The default value is 1.
+Setting 2 raises the interrupt rate substantially on small packet workloads
+and is rarely a win; prefer the default unless latency has been measured to
+matter more than the additional interrupt load.
 .It Va hw.em.rx_process_limit
 Maximum number of received packets to process at a time, -1 means unlimited.
 The default value is 100.