Måns Rullgård <m...@mansr.com> writes: > Eric Dumazet <eric.duma...@gmail.com> writes: > >> On Wed, 2015-11-11 at 13:48 +0000, Måns Rullgård wrote: >>> Eric Dumazet <eric.duma...@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 m...@mansr.com -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html