oscourse-tsinghua / rcore_plus

Rust version of THU uCore OS. Linux compatible.
MIT License
172 stars 26 forks source link

Improve IXGBE driver performance #26

Closed jiegec closed 5 years ago

jiegec commented 5 years ago

Based on iperf.

Current status (tcp, maximum observed): rcore -> linux 1.24Gb/s -> 1.40Gb/s -> 2.18Gb/s -> 2.62Gb/s -> 3.50Gb/s linux -> rcore 308Mb/s -> 320Mb/s -> 379Mb/s -> 407Mb/s -> 1.40Gb/s -> 2.47Gb/s -> 2.53Gb/s -> 3.74Gb/s -> 4.44Gb/s

Udp is not working because smoltcp does not support segmentation.

Possible ways to improve:

Manually disable RX checksum for smoltcp seems to have little improvement.

I think we have met smoltcp's performance limit.

Test under linux:

Put two interfaces into two netns, then use iperf to test:

tcp: 9.38Gb/s

jiegec commented 5 years ago

Idea: Check performance of sending raw ethernet packets, skipping network stack.