xen kernel does not honor mtu setting (network stack totally broken)

Bug #238573 reported by Arnd
4
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

three domUs:
gateway, loginserver, webserver

mtu of webserver is 1500

hannemann@webserver:~ $ ifconfig eth0
eth0 Protokoll:Ethernet Hardware Adresse 00:16:3E:39:F9:F4
          inet Adresse:137.226.18.3 Bcast:137.226.18.255 Maske:255.255.255.0
          inet6 Adresse: fe80::216:3eff:fe39:f9f4/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:3206004 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4090292 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:317519642 (302.8 MiB) TX bytes:6339718363 (5.9 GiB)

Nevertheless during a TCP transfer:
16:16:24.303263 IP webserver.umic-mesh.net.www > loginserver.umic-mesh.net.54364: . 10472538:10485570(13032) ack 114 win 91 <nop,nop,timestamp 63828762 63825762>

an IP packet of size 13032! I assume this is meant to improve TCP throughput but this is totally broken! One can't just override the actual
MTU setting and begin to send with whatever sized packets seems fortunate.

As if this weren't bad enough, it is even ignoring ICMP fragmentatiation needed messages... leading to a maximal TCP throughput of around 8 Kilobyte per second, where the gateway is another domU.
After one ICMP the packet is sent with correct MTU, however the next packet will be again sent with illegal MTU:

During a transfer from webserver through gateway to an outside machine:

16:24:33.788608 IP 137.226.12.150.33012 > 137.226.18.3.80: S 2873656164:2873656164(0) win 5840 <mss 1460,sackOK,timestamp 5405857 0,nop,wscale 6>
16:24:33.800995 IP 137.226.18.3.80 > 137.226.12.150.33012: S 3221591711:3221591711(0) ack 2873656165 win 5792 <mss 1460,sackOK,timestamp 63951128 5405857,nop,wscale 6>
16:24:33.788877 IP 137.226.12.150.33012 > 137.226.18.3.80: . ack 1 win 92 <nop,nop,timestamp 5405857 63951128>
16:24:33.788986 IP 137.226.12.150.33012 > 137.226.18.3.80: P 1:114(113) ack 1 win 92 <nop,nop,timestamp 5405857 63951128>
16:24:33.788994 IP 137.226.18.3.80 > 137.226.12.150.33012: . ack 114 win 91 <nop,nop,timestamp 63951128 5405857>
16:24:33.789171 IP 137.226.18.3.80 > 137.226.12.150.33012: . 1:2897(2896) ack 114 win 91 <nop,nop,timestamp 63951128 5405857>
16:24:33.789232 IP 137.226.18.1 > 137.226.18.3: ICMP 137.226.12.150 unreachable - need to frag (mtu 1500), length 556
16:24:33.991430 IP 137.226.18.3.80 > 137.226.12.150.33012: . 1:1449(1448) ack 114 win 91 <nop,nop,timestamp 63951179 5405857>
16:24:33.992082 IP 137.226.12.150.33012 > 137.226.18.3.80: . ack 1449 win 137 <nop,nop,timestamp 5405908 63951179>
16:24:33.992091 IP 137.226.18.3.80 > 137.226.12.150.33012: . 2897:5793(2896) ack 114 win 91 <nop,nop,timestamp 63951179 5405908>
16:24:33.992205 IP 137.226.18.1 > 137.226.18.3: ICMP 137.226.12.150 unreachable - need to frag (mtu 1500), length 556
16:24:34.195401 IP 137.226.18.3.80 > 137.226.12.150.33012: . 1449:2897(1448) ack 114 win 91 <nop,nop,timestamp 63951230 5405908>
16:24:34.195982 IP 137.226.12.150.33012 > 137.226.18.3.80: . ack 2897 win 182 <nop,nop,timestamp 5405959 63951230>
16:24:34.195989 IP 137.226.18.3.80 > 137.226.12.150.33012: . 5793:8689(2896) ack 114 win 91 <nop,nop,timestamp 63951230 5405959>
16:24:34.196086 IP 137.226.18.1 > 137.226.18.3: ICMP 137.226.12.150 unreachable - need to frag (mtu 1500), length 556
...

Revision history for this message
Arnd (arnd-arndnet) wrote :

workaround: turn off tso in DomUs
sudo ethtool -K eth0 tso off

Revision history for this message
Leann Ogasawara (leannogasawara) wrote :

The Ubuntu Kernel Team is planning to move to the 2.6.27 kernel for the upcoming Intrepid Ibex 8.10 release. As a result, the kernel team would appreciate it if you could please test this newer 2.6.27 Ubuntu kernel. There are one of two ways you should be able to test:

1) If you are comfortable installing packages on your own, the linux-image-2.6.27-* package is currently available for you to install and test.

--or--

2) The upcoming Alpha5 for Intrepid Ibex 8.10 will contain this newer 2.6.27 Ubuntu kernel. Alpha5 is set to be released Thursday Sept 4. Please watch http://www.ubuntu.com/testing for Alpha5 to be announced. You should then be able to test via a LiveCD.

Please let us know immediately if this newer 2.6.27 kernel resolves the bug reported here or if the issue remains. More importantly, please open a new bug report for each new bug/regression introduced by the 2.6.27 kernel and tag the bug report with 'linux-2.6.27'. Also, please specifically note if the issue does or does not appear in the 2.6.26 kernel. Thanks again, we really appreicate your help and feedback.

Revision history for this message
kernel-janitor (kernel-janitor) wrote :

Hi arnd-arndnet,

This bug was reported a while ago and there hasn't been any activity in it recently. We were wondering if this is still an issue? Can you try with the latest development release of Ubuntu? ISO CD images are available from http://cdimage.ubuntu.com/releases/ .

If it remains an issue, could you run the following command from a Terminal (Applications->Accessories->Terminal). It will automatically gather and attach updated debug information to this report.

apport-collect -p linux-image-`uname -r` 238573

Also, if you could test the latest upstream kernel available that would be great. It will allow additional upstream developers to examine the issue. Refer to https://wiki.ubuntu.com/KernelMainlineBuilds . Once you've tested the upstream kernel, please remove the 'needs-upstream-testing' tag. This can be done by clicking on the yellow pencil icon next to the tag located at the bottom of the bug description and deleting the 'needs-upstream-testing' text. Please let us know your results.

Thanks in advance.

[This is an automated message. Apologies if it has reached you inappropriately; please just reply to this message indicating so.]

tags: added: needs-kernel-logs
tags: added: needs-upstream-testing
tags: added: kj-triage
Changed in linux (Ubuntu):
status: New → Incomplete
Revision history for this message
Jeremy Foshee (jeremyfoshee) wrote :

This bug report was marked as Incomplete and has not had any updated comments for quite some time. As a result this bug is being closed. Please reopen if this is still an issue in the current Ubuntu release http://www.ubuntu.com/getubuntu/download . Also, please be sure to provide any requested information that may have been missing. To reopen the bug, click on the current status under the Status column and change the status back to "New". Thanks.

[This is an automated message. Apologies if it has reached you inappropriately; please just reply to this message indicating so.]

tags: added: kj-expired
Changed in linux (Ubuntu):
status: Incomplete → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.