Xen dom0 "interrupt storm detected on "irq16:"; throttling interrupt source"

Eggert, Lars lars at netapp.com
Mon May 18 13:07:00 UTC 2015


Unfortunately, the storm is still there with this patch.

On 2015-5-15, at 18:28, Roger Pau Monné <roger.pau at citrix.com> wrote:
> 
> El 15/05/15 a les 16.42, Eggert, Lars ha escrit:
>> On 2015-5-15, at 16:35, Roger Pau Monné <roger.pau at citrix.com> wrote:
>>> 
>>> Yes, but I've realized that isci for example passes an uint32_t instead
>>> of an int, so it might be best to set it to 0.
>> 
>> Here is what I see now:
>> 
>> isci0: <Intel(R) C600 Series Chipset SAS Controller (SATA mode)> port 0x6000-0x60ff mem 0xde07c000-0xde07ffff,0xddc00000-0xddffffff irq 16 at device 0.0 on pci10
>> isci0: attempting to allocate 2 MSI-X vectors (2 supported)
>> ISCI: isci->num_interrupts: 2 max_msix_messages: 2
>> isci: 1:000089 ISCI bus_alloc_resource failed
>> 
>> The storm is still there.
> 
> Yes, after looking at the code, isci really needs to check for the
> return value of pci_alloc_msix, because num_interrupts is not updated
> if the allocation fails. Following patch should hopefully fix it,
> please give it a try.
> 
> Roger.
> ---
> diff --git a/sys/dev/isci/isci_interrupt.c b/sys/dev/isci/isci_interrupt.c
> index 52c64f7..f331f3c 100644
> --- a/sys/dev/isci/isci_interrupt.c
> +++ b/sys/dev/isci/isci_interrupt.c
> @@ -128,6 +128,7 @@ isci_interrupt_setup(struct isci_softc *isci)
> 	    isci->controller_count;
> 	BOOL use_msix = FALSE;
> 	uint32_t force_legacy_interrupts = 0;
> +	int rc;
> 
> 	TUNABLE_INT_FETCH("hw.isci.force_legacy_interrupts",
> 	    &force_legacy_interrupts);
> @@ -136,8 +137,8 @@ isci_interrupt_setup(struct isci_softc *isci)
> 	    pci_msix_count(isci->device) >= max_msix_messages) {
> 
> 		isci->num_interrupts = max_msix_messages;
> -		pci_alloc_msix(isci->device, &isci->num_interrupts);
> -		if (isci->num_interrupts == max_msix_messages)
> +		rc = pci_alloc_msix(isci->device, &isci->num_interrupts);
> +		if (rc == 0 && isci->num_interrupts == max_msix_messages)
> 			use_msix = TRUE;
> 	}
> 
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 163 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-xen/attachments/20150518/6a40dd3c/attachment.sig>


More information about the freebsd-xen mailing list