mirror of
https://github.com/linuxkit/linuxkit.git
synced 2026-01-14 07:58:22 +00:00
This patch adds a simple ring buffer implementation and uses it to buffer the reads and writes to/from the AF_HYPERV socket and tap file descriptor. This removes the need to perform small reads and writes for the per-packet headers and allows a read on the Hyper-V socket to block at the same time as a write to the tap device (and vice-versa) The configuration in the init.d script is: - a max message size (individual read or write) of 8192. Experimentally this seems to be the largest completely reliable size across the Windows versions we can support. Messages of length 16384 sometimes fail. - a buffer size of 256KiB in each direction. Single stream TCP throughput as measured by iperf increases modestly, by another 100Mbit/sec. Signed-off-by: David Scott <dave.scott@docker.com>