WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-users

RE: [Xen-users] Slow TCP performance between Windows Vista andXenPV-on-H

To: Robert Dunkley <Robert@xxxxxxxxx>, James Harper <james.harper@xxxxxxxxxxxxxxxx>, "xen-users@xxxxxxxxxxxxxxxxxxx" <xen-users@xxxxxxxxxxxxxxxxxxx>
Subject: RE: [Xen-users] Slow TCP performance between Windows Vista andXenPV-on-HVM guest
From: "Fischer, Anna" <anna.fischer@xxxxxx>
Date: Tue, 15 Jun 2010 04:31:02 +0000
Accept-language: en-US
Acceptlanguage: en-US
Cc:
Delivery-date: Mon, 14 Jun 2010 21:35:18 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <C1EAC9C5E752D24C968FF091D446D82360D589@ALTERNATEREALIT>
List-help: <mailto:xen-users-request@lists.xensource.com?subject=help>
List-id: Xen user discussion <xen-users.lists.xensource.com>
List-post: <mailto:xen-users@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=unsubscribe>
References: <0199E0D51A61344794750DC57738F58E70B18FBA0D@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx><AEC6C66638C05B468B556EA548C1A77D0199710F@trantor><0199E0D51A61344794750DC57738F58E70B18FBA21@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx><AEC6C66638C05B468B556EA548C1A77D01997110@trantor> <0199E0D51A61344794750DC57738F58E70B18FBA23@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <C1EAC9C5E752D24C968FF091D446D82360D589@ALTERNATEREALIT>
Sender: xen-users-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcsJmHd6hL7u+8LkTJqjS+weJ4GGZAAIlZeQAAhX2bAAAGCBMAAALGAgAGxNSTAALOIpUA==
Thread-topic: [Xen-users] Slow TCP performance between Windows Vista andXenPV-on-HVM guest
> Subject: RE: [Xen-users] Slow TCP performance between Windows Vista
> andXenPV-on-HVM guest
> 
> I have always had to disable LSO in my setups (Although the other
> acceleration features work fine). Could it possibly be a NIC driver
> issue in Dom0?
> 
> 
> Rob
> 
> -----Original Message-----
> From: xen-users-bounces@xxxxxxxxxxxxxxxxxxx
> [mailto:xen-users-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Fischer,
> Anna
> Sent: 12 June 2010 04:40
> To: James Harper; xen-users@xxxxxxxxxxxxxxxxxxx
> Subject: RE: [Xen-users] Slow TCP performance between Windows Vista
> andXenPV-on-HVM guest
> 
> > Subject: RE: [Xen-users] Slow TCP performance between Windows Vista
> and
> > XenPV-on-HVM guest
> >
> > > > Are you capturing packets on the windows machine or on the Dom0?
> > >
> > > Dom0. Note that the Windows machine doesn't even run Xen or
> anything,
> > it is
> > > just some random machine on the network. Only the Linux guest runs
> on
> > Xen.
> >
> > Yes, I'd figured that.
> >
> > >
> > >
> > > > If you are using tcpdump on dom0, make sure you use '-s0' so that
> > you
> > > > capture the entire packup, and possibly '-v' as well. Without
> > capturing
> > > > the entire packet, tcpdump can't tell you if the checksum is
> correct
> > or
> > > > not. Even if the checksum is incorrect on Dom0 it doesn't
> > necessarily
> > > > tell you that there is a problem though. A bad checksum on
> received
> > > > packets on the windows machine would definitely suggest a problem
> > > > though.
> > >
> > > I capture with Ethereal. I definitely catch all packet. If this was
> a
> > checksum
> > > problem, then communication wouldn't work at all. However, SSH and
> > other
> > > (slower) connections work just fine. The problem is only on bulk
> data
> > transfer
> > > using TCP. If the Linux guest was sending a packet with an invalid
> > checksum,
> > > then the Windows guest would *never* send out the ACK. However, it
> is
> > actually
> > > sending out the ACK, but only after the retransmit, to ACK the
> > *retransmitted*
> > > packet. If this was a checksum problem, then the retransmitted
> packet
> > would
> > > also have an invalid checksum and so it would basically never be
> > ACKed.
> > >
> > > I have read about Vista's TCP "auto-tuning" feature, and I wonder if
> > something
> > > like this might be the problem here that the Xen guest cannot cope
> > with?
> > >
> >
> > It might then be a 'large send' problem.
> 
> Yes, my guess was that it must be something like this.
> 
> > That would manifest itself as
> > low volume traffic being mostly okay, but as the throughput increased,
> > >MTU sized packets would be sent from DomU via Dom0, with the intent
> > that the hardware will split them up into <=MTU sized. If those were
> > dropped somewhere then the retransmit would happen, and the retransmit
> > would typically not use the 'large' packet, so it would probably work.
> 
> Is that so? I don't know much about the TCP implementation, but would it
> disable offloading for a retransmit?
> 
> 
> > tcpdump should show >1500 byte packets in Dom0 on the vif interface
> > belonging to the DomU, and in the DomU if this is happening.
> 
> No, I only see < 1500. I capture on the VIF and on the physical device
> in Dom0.
> 
> 
> > Use ethtool in DomU to disable as many offload features as possible
> and
> > see if things improve.
> 
> Hardware offload is disabled on the NIC inside the Linux guest, on the
> VIF in Dom0 and also on the NIC in Dom0. All offload features, including
> checksum offload. My guess was also that this must be the problem, as I
> said before it actually works with exactly the same guest running on
> VMWare. But obviously on VMWare it doesn't run the Xen netfront/netback
> drivers, so my guess was that some configuration on there might be the
> issue. But as I said, switching off hardware offload does not make any
> difference at all. At the moment it does not run any HW offloading.
> 

I have found out by now that the problem is a bug in the NAT function in Dom0, 
e.g. in the TCP connection tracking module. It fails to rewrite Delayed ACK 
packets from newer Windows (Vista / 7) machines. When I configure the Windows 
TCP stack with TCP_NODELAY then it all works.

Anna

_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users