[ofa-general] Re: [PATCH 0/10 REV5] Implement skb batching and support in IPoIB/E1000
Or Gerlitz
ogerlitz at voltaire.com
Mon Sep 17 02:52:58 PDT 2007
Hi Krishna,
Krishna Kumar2 wrote:
> What I will do today/tomorrow is to run the rev5 (which I didn't run
> for mthca) on both ehca and mthca and get statistics and send it out.
> Otherwise what you stated is correct as far as rev4 goes. After giving
> latest details, I will appreciate any help from Mellanox developers.
good, please test with rev5 and let us know.
> Correct, for every 1 retransmission in the regular code, I see two
> retransmissions in batching case (which I assume is due to overflow at the
> receiver side as I batch sometimes upto 4K skbs). I will post the exact
> numbers in the next post.
transmission of 4K batched packets sounds like a real problem for the
receiver side, with 0.5K send/recv queue size, its 8 batches of 512
packets each were for each RX there is completion (WC) to process, SKB
to alloc and post to the QP where for the TX there's only posting to the
QP, processes one (?) WC and free 512 SKBs.
If indeed the situation is so unsymmetrical, I am starting to think that
the CPU utilization at the sender side might be much higher with
batching then without batching, have you looked into that?
> I was using 2.6.23-rc1 on receiver (which also has NAPI, but uses the
> old API - the same fn ipoib_poll()).
I am not with you. Looking on 2.6.22 and 2.6.23-rc5, for both their
ipoib-NAPI mechanism is implemented through the function ipoib_poll
being the polling api for the network stack etc, so what is the old API
and where does this difference exist?
> This is TCP (without No Delay), datagram mode, I didn't change mtu from
> the default (is it 2K?). Command is iperf with various options for different
> test buffer-size/threads.
You might want to try something lighter such as iperf udp test, where a
nice criteria would be to compare bandwidth AND packet loss between
no-batching and batching. As for the MTU, the default is indeed 2K
(2044) but its always to just know the facts, namely what was the mtu
during the test.
> Regarding id/etc, this is what dmesg has:
if you have user space libraries installed, load ib_uverbs and run the
command ibv_devinfo, you will see all the infiniband devices on your
system and for each its device id and firmware version. If not, you
should be looking on
/sys/class/infiniband/$device/hca_type
and
/sys/class/infiniband/$device/fw_ver
> Sep 16 22:49:26 elm3b39 kernel: eHCA Infiniband Device Driver (Rel.:
> SVNEHCA_0023)
> There are *fw* files for mthca0, but I don't see for ehca in /sys/class, so
> I am not sure (since these are pci-e cards, nothing shows up in lspci -v).
> What should I look for?
the above print seems to be from the ehca driver where you are talking
on mthca0, which is quite confusing. If you want to be sure what hca is
being used by the netdevice you are testing with (eg ib0) take a look on
the directory /sys/class/net/$netdevice/device/
If you have hca which is not reported in lspci and/or in
/sys/class/infinidand it sounds like you have a problem or you found a bug.
Or.
More information about the general
mailing list