Strange IRQ number
Erik Trulsson
ertr1013 at student.uu.se
Fri Dec 7 11:26:47 PST 2007
On Fri, Dec 07, 2007 at 09:13:57PM +0200, Nikolay Pavlov wrote:
> I see some strange IRQ number for my em0 card on BETA4:
> root at cassini:~# vmstat -i
> interrupt total rate
> irq1: atkbd0 6 0
> irq6: fdc0 1 0
> irq14: ata0 184947 16
> irq15: ata1 184946 16
> cpu0: timer 22110598 1999
> irq256: em0 6945039 628
> ^^^^^^^^^^^^^^^^
> cpu1: timer 22110396 1999
> Total 51535933 4661
>
> On 6.2 it was shared with uhci. Now all uhci controllers gone from the
> vmstat but not from the system:
'vmstat -i' only shows those interrupts that have generated at least one
interrupt. Use 'vmstat -ia' to see all the interrupts (I suspect that you
will find the uhci* devices there.)
>
> root at cassini:~# usbdevs
> addr 1: UHCI root hub, Intel
> addr 1: UHCI root hub, Intel
> addr 1: UHCI root hub, Intel
> addr 1: UHCI root hub, Intel
> addr 1: EHCI root hub, Intel
>
> root at cassini:~# dmesg | grep em0
> em0: <Intel(R) PRO/1000 Network Connection Version - 6.7.3> port
> 0x4000-0x401f mem 0xd0100000-0xd011ffff irq 16 at device 0.0 on pci6
> em0: Using MSI interrupt
^^^^^^^^^^^^^^^^^^^^^^
This is the magic information. On 7.x MSI/MSI-X interrupts are enabled by
default (which is not the case on 6.x).
MSI/MSI-X is a new interrupt delivery mechanism that can be used by all
PCI-E devices (although not all device drivers in FreeBSD take
advantage of this yet) and some PCI-X devices, that essentially assigns a
separate interrupt for each device - thus no need for sharing interrupts.
> em0: Ethernet address: 00:30:48:91:c0:90
> em0: [FILTER]
>
> The entire system work ok.
As expected. What you see is simply the em0 NIC (apparently a PCI-E device)
using MSI instead of the old interrupt method.
FreeBSD assigns such devices a "virtual" interrupt number starting at 256.
Short version: It is not a bug, it is a feature. :-)
--
<Insert your favourite quote here.>
Erik Trulsson
ertr1013 at student.uu.se
More information about the freebsd-current
mailing list