Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


Low Latency GbE Adapters for Linux?
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

Low Latency GbE Adapters for Linux?

I am currently working on a lab application that is extremely sensitive to latency. We are using raw Ethernet frames (No TCP/IP, no ARP) as the communication channel, and currently our RTL8111/8168 GbE adapters have a few hundred microseconds round-time latency (point-to-point, no switches, etc).

Redesigning the application to make it more latency tolerant might be a better way, but for the time being improving Ethernet latency is our first priority. Do you guys have any experience on how to reduce the latency over Ethernet? Is it possible to reduce the round trip latency to less than 50us? Are there any special adapters/drivers designed for very low latency networking?

I do understand operating system has a strong impact on latency, so it could be just a magic kernel option that reduces latency dramatically... but I am not aware of any right now.

Any suggestions are greatly appreciated. Thank you!

Comments

  • At that point, you'd want to get into layer 0 on the processor to go fast enough. There's no way you're going to process what you need in 50k instructions.

    Thanked by 1VictorZhang
  • For the time being, how about testing your application on a virtual adapter such as with bridged networking; Host-Only networking, or in another sort of virtual environment where you can exactly control the latency?

    Thanked by 1VictorZhang
  • @HardCloud said:
    For the time being, how about testing your application on a virtual adapter such as with bridged networking; Host-Only networking, or in another sort of virtual environment where you can exactly control the latency?

    Thank you for your suggestion. But unfortunately, one side of the link is connected to a special FPGA board, which is not possible to simulate in a VM. The latency on the FPGA side is very small; it is capable to receive, process and send back a packet within 10 microseconds... Just the PC side is too slow and limits the maximum packets per second...

  • I doubt the latency comes from the adapter, it's more likely from the processing inside the linux kernel.
    Maybe you should try something like VxWorks instead of Linux? Or a custom ethernet driver for Linux that avoids all the unnecessary for your application processing that the Linux kernel does. Maybe even a poll driven one, not interrupt driven - i.e. one core constantly spins polling the ethernet card to see if there is a packet to receive.

    Thanked by 1VictorZhang
Sign In or Register to comment.