[openib-general] ip over ib throughtput

Grant Grundler iod00d at hp.com
Tue Jan 11 13:17:50 PST 2005


On Tue, Jan 11, 2005 at 10:40:49AM -0800, Roland Dreier wrote:
> That's a little strange.  It could either be the pci_enable_msi() or
> the MSGINT_MODE setting that needs to happen later.

I suspect it's the MSGINT_MODE that needs to happen later.

> What puzzles me
> is that there's a call to tg3_init_hw() even after the request_irq,
> which does a tg3_reset_hw() -- so why doesn't that mess up our
> MSGINT_MODE?

Good question. I really don't know. Only broadcom will know.
tg3_init_hw doesn't mess up the BARs or MSI address/data either.

Keep in mind a "reset" isn't a *full* HW reset (ie like cycling the power).
It's all under SW (onboard firmware) control.

| eth1: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] Split[0] WireSpeed[1] TSOcap[0] 

Looks like TSO isn't enabled and I'm running a 5701 chip right now.
I will need to find out a firmware upload (e.g. TG3_TSO_SUPPORT != 0)
would mess up MSGINT_MODE as well.

> In any case I'm glad someone is finally looking at enabling MSI
> support in more drivers.  It would be really nice to get this upstream
> so that MSI support starts getting some real testing on lots of
> systems.

Yes - and I'd like to twiddle with tg3 a bit more to see if I can get it
operating with ZERO mmio reads like it was designed for. 

> One detail that you should add before sending this upstream is that
> SA_SHIRQ is not needed in MSI mode -- the driver can be sure that the
> interrupt is not shared.

I expect SA_SHIRQ is harmless since the tg3 interrupt handler can't assume
the MSI will be assigned and working. I don't want to add run time checks
to tg3 for this (assuming it's obvious where to add them).
It might be better to document this in Documentation/MSI-HOWTO.txt.

BTW, I expect better perf if the platform code specifies IRQ_PER_CPU in the IRQ descriptor.
AFAICT, only ia64 and ppc64 do that. (parisc-linux just switched over to generic
IRQ support...it will too).  Folks who care about AMD64 performance should look
into that as well - maybe it's not possible to direct interrupts to a specific CPU.

thanks,
grant



More information about the general mailing list