svn commit: r348255 - head/sys/kern

Conrad Meyer cem at FreeBSD.org
Fri May 24 22:33:15 UTC 2019


Author: cem
Date: Fri May 24 22:33:14 2019
New Revision: 348255
URL: https://svnweb.freebsd.org/changeset/base/348255

Log:
  Disable intr_storm_threshold mechanism by default
  
  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.
  
  The following historical context comes from jhb@: 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.
  
  Reviewed by:	jhb
  Sponsored by:	Dell EMC Isilon
  Differential Revision:	https://reviews.freebsd.org/D20401

Modified:
  head/sys/kern/kern_intr.c

Modified: head/sys/kern/kern_intr.c
==============================================================================
--- head/sys/kern/kern_intr.c	Fri May 24 22:30:40 2019	(r348254)
+++ head/sys/kern/kern_intr.c	Fri May 24 22:33:14 2019	(r348255)
@@ -91,7 +91,7 @@ struct proc *intrproc;
 
 static MALLOC_DEFINE(M_ITHREAD, "ithread", "Interrupt Threads");
 
-static int intr_storm_threshold = 1000;
+static int intr_storm_threshold = 0;
 SYSCTL_INT(_hw, OID_AUTO, intr_storm_threshold, CTLFLAG_RWTUN,
     &intr_storm_threshold, 0,
     "Number of consecutive interrupts before storm protection is enabled");


More information about the svn-src-head mailing list