Skip to content
Snippets Groups Projects
user avatar
Dmitry Fleytman authored
This patch fixes part of TCP instability/low throughput problems on Xen.

On transmit networking stack passes to Xen netfront driver a list of mbufs
of up to PAGE_SIZE (4096) bytes each.
In case the list consists of more than MAX_TX_REQ_FRAGS (18) fragments
driver tries to defragment it with m_defrag().

m_defrag() in turn tries to build list of buffers of up to MCLBYTES
(2048) bytes each. This leads to even longer chain and packet being dropped.
As a result around 1% of TCP segments are lost and intensive TCP
retransmissions and slowdowns occur.

This patch makes m_defrag() use Jumbo packets zone for allocation, i.e.
PAGE_SIZE per mbuf.

This patch is pretty similar to what Glauber done on RX path before.

Signed-off-by: default avatarDmitry Fleytman <dmitry@daynix.com>
f6a8880b
History