ia64/xen-unstable

view install.sh @ 11918:6677b97612a2

[NET] gso: Fix rcv mss estimate

I noticed that with default TCP window sizes TSO + Xen would slow to a
crawl on certain machines. It turned out that there is a bug in the
TCP stack when it comes to receiving LRO (counter part of TSO for rx)
packets.

The following fix has been applied upstream.

[TCP]: Fix rcv mss estimate for LRO

By passing a Linux-generated TSO packet straight back into
Linux, Xen
becomes our first LRO user :) Unfortunately, there is at least
one spot
in our stack that needs to be changed to cope with this.

The receive MSS estimate is computed from the raw packet
size. This is
broken if the packet is GSO/LRO. Fortunately the real MSS can
be found
in gso_size so we simply need to use that if it is non-zero.

Real LRO NICs should of course set the gso_size field in
future.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
author kfraser@localhost.localdomain
date Fri Oct 20 10:46:37 2006 +0100 (2006-10-20)
parents e639d53330ba
children edfdeb150f27
line source
1 #!/bin/sh
3 src='./install'
4 if [ -d ./dist ]; then
5 src='./dist/install'
6 fi
8 if ! [ -d $src ]; then
9 echo "ERROR: Could not find a valid distribution directory."
10 echo " If this is a source-only release, try 'make dist'."
11 exit 1
12 fi
14 dst='/'
15 if [ $# -ne 0 ]; then
16 dst=$1
17 fi
19 if ! [ -d $dst ]; then
20 echo "ERROR: You must specify a valid install directory."
21 echo " The specified directory '$dst' is not valid."
22 exit 1
23 fi
25 tmp="`mktemp -d`"
27 echo "Installing Xen from '$src' to '$dst'..."
28 (cd $src; tar -cf - * ) | tar -C "$tmp" -xf -
30 [ -x "$(which udevinfo)" ] && \
31 UDEV_VERSION=$(udevinfo -V | sed -e 's/^[^0-9]* \([0-9]\{1,\}\)[^0-9]\{0,\}/\1/')
33 if [ -n "$UDEV_VERSION" ] && [ $UDEV_VERSION -ge 059 ]; then
34 echo " - installing for udev-based system"
35 rm -rf "$tmp/etc/hotplug"
36 else
37 echo " - installing for hotplug-based system"
38 rm -rf "$tmp/etc/udev"
39 fi
41 echo " - modifying permissions"
42 chmod -R a+rX "$tmp"
44 (cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" -xf -
45 rm -rf "$tmp"
47 echo "All done."
49 echo "Checking to see whether prerequisite tools are installed..."
50 cd $src/../check
51 ./chk install
52 echo "All done."
54 exit 0