kern/176446: [netinet] [patch] Concurrency in ixgbe driving out-of-order packet process and spurious RST

Charbon, Julien jcharbon at verisign.com
Thu Mar 7 10:20:01 UTC 2013


The following reply was made to PR kern/176446; it has been noted by GNATS.

From: "Charbon, Julien" <jcharbon at verisign.com>
To: John Baldwin <jhb at freebsd.org>
Cc: bug-followup at freebsd.org,
        "De La Gueronniere, Marc" <mdelagueronniere at verisign.com>
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 at 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<ACK>; 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<RST>; 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


More information about the freebsd-net mailing list