[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] huge tcp performance-regression on pvops - kernel (+Solution)

Setup: pvops dom0 kernel from Jeremys git-repository from 2009-10-18

Problem: Very slow network-performance (3-10 kbs) when tcp-packets are used (noticed when using scp, samba, nfs over tcp)

But this occurs only in the following situations:


1.) domU to domU on same PC (domUs are paravirtualized linux-kernels)

2.) domU to another PC that doesn't use pvops-kernel (packets sent from another PC to domU works fine)

domU to dom0 and the opposite way works without performance-regression.

Reason: bigger tcp-packets get dropped from the domU the tcp-packets are sent from (netstat -s in domU shows many retransmitted tcp-segments)

tcpdump shows that the bigger packets leave the vif from the domU they were sent from, but never arrive the vif from the domU they are sent to.

This is caused by this lines in drivers/xen/netback.c at line 1325 :

                if (skb->data_len < skb_shinfo(skb)->gso_size) {

                         skb_shinfo(skb)->gso_size = 0;
                         skb_shinfo(skb)->gso_type = 0;

These lines were reverted from the linux-2.6.18-xen mercurial repository

on 2009-01-13 in changeset 774: 107e10e0e07c: netfront/back: do not mark packets of length < MSS as GSO

I used the patch on the above mentioned pvops tree and the problem was gone.

I never noticed such problems on the 2.6.18-xen kernel or the forward-ported xen-kernel (from Andrew Lyon)

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.