Linux Kernel 3.18 gets faster network transmission function


Recommended Posts

sorry for the bad translation i am lazy today and just using google translate but will bold out the most important facts

 

 

The Linux kernel developers found a previously overlooked opportunity to further accelerate the sending network packets.

The results of this work should be seen in Linux 3.18, is to be expected with the beginning of December.Linux has the most feature-rich, best and - with the exception perhaps of FreeBSD, which also claimed the crown - fastest network implementation of all operating systems.

 

All the more surprising it may seem that the network subsystem of Linux has not missed a great opportunity to accelerate data transfers. Until Linux 3.17 each data packet in the network layer is handled individually.

When sending packets must for every packet in sequence various actions are performed, including the documents of locks (possibly associated with waiting times), passing the packet to the driver, enqueue into one of the transmit queues of the device and initiating the transfer. Some of these actions can be time consuming, but package still run for each. That would not in any case necessary to be able to handle multiple packets together. In addition, network packets have the property often occur in large numbers, for example, if a pending transfer large amounts of data.

 

The upcoming Linux-Kernel 3.18 will make use of this property in order to optimize the data transfer continues. At the ongoing work multiple developers are involved, each contributing a piece to the puzzle. After the first patches that have been discarded, implemented the head of the network subsystem David Miller a simple flag called xmit_more in the data structure sk_buff that describes data packets. This flag indicates whether to follow a package within a package.

Drivers that evaluate this flag can delay the start of a transfer until they have enough packets to send them more efficiently. Some drivers have already been changed, but probably not nearly all, and there may also be drivers, which are not worth it.

With this change, avoid the kernel developers to implement new system calls or new functions to the driver interface. The system optimizes all yourself without the applications would adapt. The changes were generally very small, because the required functionality was largely already exists little or lacked it. The effect of the changes will be, however large.

Thus it can be fully utilized after the first measurements, a 40 Gbit network card, even if one does without hardware acceleration the map. Previously, the likely have been possible only with the aid of hardware acceleration. In slower networks, although no acceleration is to be expected, but this is likely to change reduce the CPU usage.

 

 

source

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.