bge driver and MSI

Pyun YongHyeon pyunyh at gmail.com
Tue Dec 1 18:37:36 UTC 2009


On Tue, Dec 01, 2009 at 03:31:37PM -0200, Rafael Ganascim wrote:
> Hi list,
> 
> Can the bge driver use more than one MSI message? If possible, what the
> advantage of this on a SMP system (better CPU distribution on interrupts?)?
> 
> I have an Broadcom BCM5703X, with 8 MSI messages:
> --
> bge0 at pci0:1:2:0:    class=0x020000 card=0x00cb0e11 chip=0x16a714e4 rev=0x02
> hdr=0x00
>     vendor     = 'Broadcom Corporation'
>     device     = 'BCM5703X NetXtreme Gigabit Ethernet'
>     class      = network
>     subclass   = ethernet
>     cap 07[40] = PCI-X 64-bit supports 133MHz, 2048 burst read, 1 split
> transaction
>     cap 01[48] = powerspec 2  supports D0 D3  current D0
>     cap 03[50] = VPD
>     cap 05[58] = MSI supports 8 messages, 64 bit

I think supporting more than one MSI message does not have benefit.
If controller support multiple MSIX message with RSS it could be
configured to distribute interrupts among CPUs. But I think FreeBSD
still lacks a capability to dynamically redistribute loads while
RSS is active. Controller also should support multi-Tx/Rx queues to
take advantage of it. BCM5717 seems to support MSIX with RSS but
bge(4) has no support for the controller at the moment. I think
supporting multi-Tx/Rx queue requires major driver overhauling
which would take a lot of time and experiments.

bge(4) in HEAD takes full advantage of MSI. Special interrupt
handler optimized for MSI is used for MSI capable controllers and
this seems to work well. I don't have BCM5703X so I didn't enable
that feature on PCIX controller though.

> --
> 
> Thanks.
> 
> --
> Rafael


More information about the freebsd-net mailing list