Settings IRQs Manually?

Hello, I've recently set up my first ever FreeBSD install, for a ZFS system running on ESXi 4.1 (running 8.2 release, I'm not sure what other information would be relevant regarding my system).

I have a pair of HBAs passed through directly to the guest but for whatever reason when in a VM this configuration causes interrupt storms on IRQ 18 and 19 (the two assigned to these controllers). The issue I'm having is that IRQ 19 is shared with my NIC and this is causing a drop in throughput performance, from ~95MB/s down to a stunning 7MB/s.

From what I have read I may be able to manually set IRQs, possibly in /boot/loader.conf? However I can't seem to find how this is done (if it's even possible).

So to summarize for those who jumped to the end: need to reassign my NIC to a different IRQ, how can I do this?:\
 
That depends how the hardware is implemented. With some integrated peripherals you can't change the IRQ. Have a look in the "BIOS" of the VM.
 
The NIC is an e1000 created by ESXi and the controllers are just sitting in two of my PCIe slots. I suppose that would be in my .nvram file? Silly me, I never even considered that it would have to emulate an editable BIOS for the guest, though now that I think about it. Obviously!

Thanks, I will take a look and see what I can find. If it cannot be changed in there can FreeBSD change it (assuming it's set to PnP mode)?
 
You probably can't change it. Interrupt sharing usually means there's a hardware link between the various IRQ lines. With PCI you could control which IRQ was used by IRQA, B, C and D. However, if the internal NIC and, for example, IRQ-A are connected in hardware there's no way to split those up.
 
Since this is a VM and the NIC doesn't even exist though shouldnt that preclude there being such a hardware link
 
I guess that depends on how they implemented the virtualization. Also note that even though (some) hardware is virtualized it does map to real hardware. Interrupt sharing in and of itself isn't usually the problem.
 
Solved it quick and dirty, I added a secondary virtual NIC to the machine and luckily it mapped to 17 (wooo) so as long as I connect to the IP provided to that NIC I'm fine. Yeeha! Thanks for the help
 
Back
Top