svn commit: r348255 - head/sys/kern
Steven Hartland
steven.hartland at multiplay.co.uk
Fri May 24 23:21:52 UTC 2019
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 at 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");
>
>
More information about the svn-src-all
mailing list