luigirizzo / netmap

Automatically exported from code.google.com/p/netmap
BSD 2-Clause "Simplified" License
1.84k stars 534 forks source link

performance problem with emulated mode (Linux 5.15.0 Ubuntu 22.04) #932

Closed muratbalaban43 closed 1 year ago

muratbalaban43 commented 1 year ago

Hi @giuseppelettieri ,

As discussed a while back, we're seeing a strange performance issue with netmap emulated driver.

Our application is bridging hardware and host rings and doing some inspection switching packets back and forth.

In our tests with iperf3, we can attain very good upload performance (almost 1Gbps over a 1Gbps link), but the download side (iperf3 -R) yields about 50-60 Kbps tput.

We don't see this with the FreeBSD emulated driver.

The adapter we're using in our tests:

00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-LM (rev 05)
    DeviceName:  Onboard LAN
    Subsystem: Hewlett-Packard Company Ethernet Connection I217-LM
    Flags: bus master, fast devsel, latency 0, IRQ 29
    Memory at ef900000 (32-bit, non-prefetchable) [size=128K]
    Memory at ef93c000 (32-bit, non-prefetchable) [size=4K]
    I/O ports at f060 [size=32]
    Capabilities: <access denied>
    Kernel driver in use: e1000e
    Kernel modules: e1000e

Any pointers for us?

muratbalaban43 commented 1 year ago

Ok, this turned out to be GRO (Generic Receive Offload). Once disabled, everything got back to the limits of sanity ;)