You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The unified socket loop merged code from the previous "packet loop" and the windows specific version, keeping the most important improvements from both:
use select and synchronous recvmsg in Unix
use wait for multiple events and asynchronous recvmsg in Windows
use recvmsg in Unix,
use receive coalesce with recvmsg in Windows
use UDP GSO (Unix) or send coalesce (Windows) with sendmsg
There are a couple more optimizations that could be used, such as:
replace select by poll in Unix
use UDP GRO for equivalent of receive coalesce in Unix
use recvmmsg in Unix to receive multiple messages
use sendmmsg in Unix to send multiple messages
use multiple asynchronous sendmsg in parallel in Windows (was implemented in Windows loop)
This should be implemented over time.
The most important next improvement is the support for running the packet loop in a background thread, because that would remove the need for "active polling", which can affect performance. The next most important step is the implementation of multiple asynchronous sendmsg in parallel in Windows, because that would allow for removal of the previous loop for the code base.
The text was updated successfully, but these errors were encountered:
The unified socket loop merged code from the previous "packet loop" and the windows specific version, keeping the most important improvements from both:
select
and synchronousrecvmsg
in Unixwait for multiple events
and asynchronousrecvmsg
in Windowsrecvmsg
in Unix,receive coalesce
withrecvmsg
in WindowsUDP GSO
(Unix) orsend coalesce
(Windows) with sendmsgThere are a couple more optimizations that could be used, such as:
select
bypoll
in UnixUDP GRO
for equivalent of receive coalesce in Unixrecvmmsg
in Unix to receive multiple messagessendmmsg
in Unix to send multiple messagesThis should be implemented over time.
The most important next improvement is the support for running the packet loop in a background thread, because that would remove the need for "active polling", which can affect performance. The next most important step is the implementation of multiple asynchronous sendmsg in parallel in Windows, because that would allow for removal of the previous loop for the code base.
The text was updated successfully, but these errors were encountered: