svn commit: r251297 - head/sys/dev/xen/netfront

Andre Oppermann andre at FreeBSD.org
Mon Jun 3 13:00:33 UTC 2013


Author: andre
Date: Mon Jun  3 13:00:33 2013
New Revision: 251297
URL: http://svnweb.freebsd.org/changeset/base/251297

Log:
  Specify a maximum TSO length limiting the segment chain to what the
  Xen host side can handle after defragmentation.
  
  This prevents the driver from throwing away too long TSO chains and
  improves the performance on Amazon AWS instances with 10GigE virtual
  interfaces to the normally expected throughput.
  
  Submitted by:	cperciva (earlier version)
  Reviewed by:	cperciva
  Tested by:	cperciva
  MFC after:	1 week

Modified:
  head/sys/dev/xen/netfront/netfront.c

Modified: head/sys/dev/xen/netfront/netfront.c
==============================================================================
--- head/sys/dev/xen/netfront/netfront.c	Mon Jun  3 12:55:13 2013	(r251296)
+++ head/sys/dev/xen/netfront/netfront.c	Mon Jun  3 13:00:33 2013	(r251297)
@@ -134,6 +134,7 @@ static const int MODPARM_rx_flip = 0;
  * to mirror the Linux MAX_SKB_FRAGS constant.
  */
 #define	MAX_TX_REQ_FRAGS (65536 / PAGE_SIZE + 2)
+#define	NF_TSO_MAXBURST ((IP_MAXPACKET / PAGE_SIZE) * MCLBYTES)
 
 #define RX_COPY_THRESHOLD 256
 
@@ -2122,6 +2123,7 @@ create_netdev(device_t dev)
 	
     	ifp->if_hwassist = XN_CSUM_FEATURES;
     	ifp->if_capabilities = IFCAP_HWCSUM;
+	ifp->if_hw_tsomax = NF_TSO_MAXBURST;
 	
     	ether_ifattach(ifp, np->mac);
     	callout_init(&np->xn_stat_ch, CALLOUT_MPSAFE);


More information about the svn-src-all mailing list