Date: Sat, 25 May 2019 00:21:39 +0100 From: Steven Hartland <steven.hartland@multiplay.co.uk> To: Conrad Meyer <cem@freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r348255 - head/sys/kern Message-ID: <CAHEMsqZ_d8Q8tWiG_Zn%2BdL7uDGPKLGBxn9aUMBmGPe3RwcTQ7w@mail.gmail.com> In-Reply-To: <201905242233.x4OMXEAr071844@repo.freebsd.org> References: <201905242233.x4OMXEAr071844@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Just wanted to say I really appreciate the details in this commit message. Its often the case the message get overlooked when it comes to the time needed to write a truly useful message to others and this a great example of the quality we should all try to follow. Regards Steve On Fri, 24 May 2019 at 23:33, Conrad Meyer <cem@freebsd.org> wrote: > 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"); > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAHEMsqZ_d8Q8tWiG_Zn%2BdL7uDGPKLGBxn9aUMBmGPe3RwcTQ7w>