Messages in this thread | | | From | Måns Rullgård <> | Subject | Re: [PATCH v5] net: ethernet: add driver for Aurora VLSI NB8800 Ethernet controller | Date | Wed, 11 Nov 2015 14:35:21 +0000 |
| |
Måns Rullgård <mans@mansr.com> writes:
> Eric Dumazet <eric.dumazet@gmail.com> writes: > >> On Wed, 2015-11-11 at 13:48 +0000, Måns Rullgård wrote: >>> Eric Dumazet <eric.dumazet@gmail.com> writes: >>> >>> > On Wed, 2015-11-11 at 13:04 +0000, Måns Rullgård wrote: >>> > >>> >> I tried that, and throughput (as measured by iperf3) dropped by 2%. >>> >> Maybe I did something wrong. >>> > >>> > What link speed have you used, what was the throughput you got, >>> > and is the receiver using the same NIC ? >>> >>> 1Gbps link, 640 Mbps TCP transmit throughput to a PC with Intel NIC. >>> Why does it matter what NIC the receiver has? >> >> Because at 1Gb line rate, you better get GRO properly implemented in the >> receiver, so that TCP stack does not send one ACK every 2 MSS. >> >> Send speed is also dependent on the number of ACK packets the sender has >> to process. >> >> This is why I suggested you use napi_gro_receive() in your driver. > > FWIW, with UDP I get 650 Mbps.
It seems the on-chip interconnect is limiting memory bandwidth available to the Ethernet DMA. If I increase the limits, I get 800 Mbps over TCP and 850 Mbps over UDP with the driver posted here, the TCP case being CPU bound in csum_partial_copy_from_user.
-- Måns Rullgård mans@mansr.com
| |