RE: [patch] tcp: attach SYNACK messages to request sockets instead of listener
From: Haiyang Zhang <haiyangz@microsoft.com>
Date: 2015-10-30 21:42:34
quoted hunk ↗ jump to hunk
-----Original Message----- From: Eric Dumazet [mailto:eric.dumazet@gmail.com] Sent: Friday, October 30, 2015 4:19 PM To: Haiyang Zhang <haiyangz@microsoft.com> Cc: edumazet@google.com; David Miller <davem@davemloft.net>; netdev@vger.kernel.org; KY Srinivasan [off-list ref] Subject: Re: [patch] tcp: attach SYNACK messages to request sockets instead of listener On Fri, 2015-10-30 at 13:02 -0700, Eric Dumazet wrote:quoted
So it looks like you have a device with a very big hh_len MAX_TCP_HEADER is not enough space to hold all headers, and this isthequoted
bug that needs to be fixed. This is scary to realloc all tcp packets !drivers/net/hyperv/netvsc_drv.c sets a needed_headroom of 220 bytes :( Could you try :diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 4ac653b7b8ac..7dbdd29076be 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h@@ -132,8 +132,10 @@ static inline bool dev_xmit_complete(int rc) * used. */ -#if defined(CONFIG_WLAN) || IS_ENABLED(CONFIG_AX25) -# if defined(CONFIG_MAC80211_MESH) +#if defined(CONFIG_WLAN) || IS_ENABLED(CONFIG_AX25) ||IS_ENABLED(CONFIG_HYPERV_NET) +# if IS_ENABLED(CONFIG_HYPERV_NET) +# define LL_MAX_HEADER 384 +# elif defined(CONFIG_MAC80211_MESH) # define LL_MAX_HEADER 128 # else # define LL_MAX_HEADER 96
With your 2nd patch, I saw: [ 19.242104] Wow ! headroom=164 while hh_len(eth0)=240 After adding the 3rd patch with increased LL_MAX_HEADER, the warning and stack trace no longer show up. Also, could you fix the net core code so that it doesn't panic even with reallocated header? Thanks, - Haiyang