[openib-general] [PATCH] mthca updates (2.6.8 dependent)
Dror Goldenberg
gdror at mellanox.co.il
Mon Aug 16 11:27:13 PDT 2004
> -----Original Message-----
> From: Roland Dreier [mailto:roland at topspin.com]
> Sent: Monday, August 16, 2004 6:52 PM
> Dror> Anyway, I believe that with both MSI and MSI-X you can avoid
> Dror> the PIO read. * If it's MSI-X, it's easy. By the IRQ# you
> Dror> can tell which EQ has work. * If it's MSI, just go and peek
> Dror> into all available EQs. It's much more efficient than doing
> Dror> a PIO read.
>
> It seems this would apply to standard INTx mode as well. Do
> you know why Mellanox didn't use this in THCA? In any case,
> I'll have to benchmark this approach.
>
In PCI/PCIX, the interrupt is a wire, so it is not guaranteed that by the
time you
got the interrupt, the EQE will be waiting in memory. This is because
interrupt
goes on a separate wire from HCA to interrupt controller, while data goes
up the PCI bridges. Therefore it is required to perform a PIO read to flush
all
posted writes flying upstream.
In PCI-Express, the interrupt is a message, so it will work. The interrupt
will
just flush the data to the memory because it maintain ordering with posted
writes upstream. In the current driver, since it's PCI and PCI-Express we
don't do it. In the new mode for Arbel we may do it.
When you do MSI/MSI-X, then architecturally it is guaranteed that by the
time
you get the interrupt, the data already waits for you in memory.
Dror
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/general/attachments/20040816/f3e84b5a/attachment.html>
More information about the general
mailing list