From owner-freebsd-net@FreeBSD.ORG Thu Mar 7 10:20:01 2013 Return-Path: Delivered-To: freebsd-net@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id B32E36E8 for ; Thu, 7 Mar 2013 10:20:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 8A409F5D for ; Thu, 7 Mar 2013 10:20:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.6/8.14.6) with ESMTP id r27AK1ID040962 for ; Thu, 7 Mar 2013 10:20:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.6/8.14.6/Submit) id r27AK1k7040961; Thu, 7 Mar 2013 10:20:01 GMT (envelope-from gnats) Date: Thu, 7 Mar 2013 10:20:01 GMT Message-Id: <201303071020.r27AK1k7040961@freefall.freebsd.org> To: freebsd-net@FreeBSD.org Cc: From: "Charbon, Julien" Subject: Re: kern/176446: [netinet] [patch] Concurrency in ixgbe driving out-of-order packet process and spurious RST X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: "Charbon, Julien" List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Mar 2013 10:20:01 -0000 The following reply was made to PR kern/176446; it has been noted by GNATS. From: "Charbon, Julien" To: John Baldwin Cc: bug-followup@freebsd.org, "De La Gueronniere, Marc" Subject: Re: kern/176446: [netinet] [patch] Concurrency in ixgbe driving out-of-order packet process and spurious RST Date: Thu, 07 Mar 2013 11:11:25 +0100 On 2/28/13 8:10 PM, Charbon, Julien wrote: > On 2/28/13 4:57 PM, John Baldwin wrote: >> Can you try the fixes from http://svnweb.freebsd.org/base?view=revision&revision=240968? > > Actually, Marc (I CC'ed him) did find the r240968 fix for concurrency > between ixgbe_msix_que() and ixgbe_handle_que(), and made a backport for > release-8.3.0 (see patch [1] below). However, the issue was still > reproducible, then Marc found another place for concurrency from > ixgbe_local_timer() and fix it (see patch [2]). But it was still not > enough, and he found a last place for concurrency due to > ixgbe_rearm_queues() call (see patch [3]). We all these patches > applied, we were not able to reproduce this issue. Just for the record: As expected this issue is reproducible on 9.1-RELEASE: # uname -a FreeBSD atlas 9.1-RELEASE FreeBSD 9.1-RELEASE #1 r247851M: Wed Mar 6 11:17:43 UTC 2013 jcharbon@atlas:/usr/obj/app/jcharbon/9.1.0/sys/GENERIC amd64 Enable TCP debug log: # sysctl net.inet.tcp.log_debug=1 Load enough a TCP service and due to ixgbe race conditions between ixgbe_msix_que() and ixgbe_handle_que(), you will get: Mar 7 10:01:04 atlas kernel: TCP: [192.168.100.21]:12918 to [192.168.100.152]:8080; syncache_socket: in_pcbconnect failed with error 48 Mar 7 10:01:04 atlas kernel: TCP: [192.168.100.21]:12918 to [192.168.100.152]:8080 tcpflags 0x10; tcp_input: Listen socket: Socket allocation failed due to limits or memory shortage, sending RST Mar 7 10:01:04 atlas kernel: TCP: [192.168.100.21]:12918 to [192.168.100.152]:8080 tcpflags 0x4; syncache_chkrst: Spurious RST without matching syncache entry (possibly syncookie only), segment ignored We will provide our current fix patch for 9.1-RELEASE. -- Julien