Page MenuHomeFreeBSD

Disable intr_storm_threshold mechanism by default
ClosedPublic

Authored by cem on May 24 2019, 9:36 PM.
Tags
None
Referenced Files
Unknown Object (File)
Dec 24 2023, 3:49 AM
Unknown Object (File)
Dec 21 2023, 6:48 AM
Unknown Object (File)
Dec 20 2023, 1:11 AM
Unknown Object (File)
Nov 6 2023, 4:56 AM
Unknown Object (File)
Nov 5 2023, 10:53 AM
Unknown Object (File)
Nov 4 2023, 3:02 AM
Unknown Object (File)
Oct 20 2023, 8:21 PM
Unknown Object (File)
Oct 5 2023, 3:35 AM
Subscribers

Details

Summary

The ixl.4 manual page has documented that the threshold falsely detects
interrupt storms on 40Gbit NICs as long ago as 2015, and we have seen
similar false positives with the ioat(4) DMA device (which can push GB/s).

For example, synthetic load can be generated with tools/tools/ioat
'ioatcontrol 0 200 8192 1 1000' (allocate 200x8kB buffers, generate an
interrupt for each one, and do this for 1000 milliseconds). With
storm-detection disabled, the Broadwell-EP version of this device is capable
of generating ~350k real interrupts per second.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Disable rather than bump

cem retitled this revision from Bump intr_storm_threshold again to Disable intr_storm_threshold mechanism by default.May 24 2019, 10:21 PM
cem edited the summary of this revision. (Show Details)

My only suggestion would perhaps be to add some text along these lines to the commit log:

Originally, the threshold worked around incorrect routing of PCI INTx interrupts
on single-CPU systems which would end up in a hard hang during boot.  Since the
threshold was added, our PCI interrupt routing was improved, most PCI interrupts
use edge-triggered MSI instead of level-triggered INTx, and typical systems
have multiple CPUs available to service interrupts.  On the off chance that the
threshold is useful in the future, it remains available as a tunable and sysctl."
This revision is now accepted and ready to land.May 24 2019, 10:29 PM
This revision was automatically updated to reflect the committed changes.