Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 May 2015 16:14:34 +0200
From:      =?UTF-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
To:        "Eggert, Lars" <lars@netapp.com>
Cc:        "freebsd-xen@freebsd.org" <freebsd-xen@freebsd.org>
Subject:   Re: Xen dom0 "interrupt storm detected on "irq16:"; throttling interrupt source"
Message-ID:  <5555FF4A.8010702@citrix.com>
In-Reply-To: <683335F9-E04E-4F8C-B1EF-0047E63E00AD@netapp.com>
References:  <EAB58E00-BA0A-45FB-A709-01359219C106@netapp.com> <55531131.7040404@citrix.com> <65D7289A-9261-4F02-88E5-B2D137C268C1@netapp.com> <5553651D.3000400@citrix.com> <FFAA0565-3513-4097-A356-8BED9DB61307@netapp.com> <5555DFBC.9030306@citrix.com> <683335F9-E04E-4F8C-B1EF-0047E63E00AD@netapp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello,

El 15/05/15 a les 14.22, Eggert, Lars ha escrit:
> On 2015-5-15, at 13:59, Roger Pau Monné <roger.pau@citrix.com> wrote:
>> Can you provide the bootlog with the patch applied?
> 
> Below.

That's weird, AFAICT the patch I've send you should force isci to use 
the legacy interrupt, but it seems it still tries to use MSI-X.

I've attached another patch that will force isci to print some 
messages, can you try that?

It should be applied on a clean tree, since it also contains the change 
to xen_msi.c I've send you before, and of course you should not set 
hw.isci.force_legacy_interrupts when testing it.

>> Also, can you try if there's any difference when setting:
>> hw.isci.force_legacy_interrupts=1
>> on /boot/loader.conf?
> 
> That seems to elimintate the storm. The isci line is now simply:
> 
> 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

Can you confirm the device works properly with 
hw.isci.force_legacy_interrupts=1?

Thanks, Roger.

---
diff --git a/sys/dev/isci/isci_interrupt.c b/sys/dev/isci/isci_interrupt.c
index 52c64f7..f82b9de 100644
--- a/sys/dev/isci/isci_interrupt.c
+++ b/sys/dev/isci/isci_interrupt.c
@@ -137,6 +137,8 @@ isci_interrupt_setup(struct isci_softc *isci)
 
 		isci->num_interrupts = max_msix_messages;
 		pci_alloc_msix(isci->device, &isci->num_interrupts);
+		printf("ISCI: isci->num_interrupts: %u max_msix_messages: %u\n",
+		     isci->num_interrupts, max_msix_messages);
 		if (isci->num_interrupts == max_msix_messages)
 			use_msix = TRUE;
 	}
diff --git a/sys/x86/xen/xen_msi.c b/sys/x86/xen/xen_msi.c
index 0f678b1..21b542a 100644
--- a/sys/x86/xen/xen_msi.c
+++ b/sys/x86/xen/xen_msi.c
@@ -114,6 +114,7 @@ int
 xen_msix_alloc(device_t dev, int *irq)
 {
 
+	*irq = 0;
 	return (ENXIO);
 }
 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5555FF4A.8010702>