From owner-freebsd-net@FreeBSD.ORG Thu Dec 26 07:19:53 2013 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 58DE791C for ; Thu, 26 Dec 2013 07:19:53 +0000 (UTC) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id B7DFE1846 for ; Thu, 26 Dec 2013 07:19:52 +0000 (UTC) Received: from porto.starpoint.kiev.ua (porto-e.starpoint.kiev.ua [212.40.38.100]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id JAA19041 for ; Thu, 26 Dec 2013 09:19:44 +0200 (EET) (envelope-from avg@FreeBSD.org) Received: from localhost ([127.0.0.1]) by porto.starpoint.kiev.ua with esmtp (Exim 4.34 (FreeBSD)) id 1Vw5EN-0004me-VK for freebsd-net@freebsd.org; Thu, 26 Dec 2013 09:19:44 +0200 Message-ID: <52BBD857.8040808@FreeBSD.org> Date: Thu, 26 Dec 2013 09:18:47 +0200 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: freebsd-net@FreeBSD.org Subject: igb / buf_ring panic: buf already enqueue at X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=X-VIET-VPS Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Dec 2013 07:19:53 -0000 Unread portion of the kernel message buffer: panic: buf=0xfffffe0cfe9a0600 already enqueue at 1259 prod=1260 cons=1259 (kgdb) bt #0 doadump (textdump=1) at pcpu.h:234 #1 0xffffffff808ea32a in kern_reboot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:449 #2 0xffffffff808e9b43 in panic (fmt=) at /usr/src/sys/kern/kern_shutdown.c:637 #3 0xffffffff804c5268 in igb_mq_start (ifp=0xfffffe0021566000, m=0xfffffe0cfe9a0600) at buf_ring.h:86 #4 0xffffffff809b6dcd in ether_output_frame (ifp=0xfffffe0021566000, m=0xfffffe0cfe9a0600) at /usr/src/sys/net/if_ethersubr.c:447 #5 0xffffffff809b73ae in ether_output (ifp=0xfffffe0021566000, m=0xfffffe0cfe9a0600, dst=, ro=) at /usr/src/sys/net/if_ethersubr.c:418 #6 0xffffffff80a2726f in ip_output (m=0xfffffe0cfe9a0600, opt=, ro=0xffffff9de0aca700, flags=, imo=0x0, inp=0xfffffe006cb85498) at /usr/src/sys/netinet/ip_output.c:631 #7 0xffffffff80aa4603 in udp_send (so=, flags=, m=, addr=, control=, td=0xfffffe00322b1490) at /usr/src/sys/netinet/udp_usrreq.c:1243 #8 0xffffffff80963575 in sosend_dgram (so=0xfffffe064c9a2000, addr=0x0, uio=0xffffff9de0aca990, top=0xfffffe0cfe9a0600, control=0x0, flags=0, td=0xfffffe00322b1490) at /usr/src/sys/kern/uipc_socket.c:1175 #9 0xffffffff80960c2f in sosend (so=, addr=, uio=, top=, control=, flags=, td=0xfffffe00322b1490) at /usr/src/sys/kern/uipc_socket.c:1408 #10 0xffffffff809468f8 in soo_write (fp=, uio=0xffffff9de0aca990, active_cred=, flags=, td=) at /usr/src/sys/kern/sys_socket.c:102 #11 0xffffffff8093eefc in dofilewrite (td=0xfffffe00322b1490, fd=3, fp=0xfffffe03bec525a0, auio=0xffffff9de0aca990, offset=, flags=0) at file.h:295 #12 0xffffffff809407e4 in kern_writev (td=0xfffffe00322b1490, fd=3, auio=0xffffff9de0aca990) at /usr/src/sys/kern/sys_generic.c:459 #13 0xffffffff80940915 in sys_write (td=, uap=) at /usr/src/sys/kern/sys_generic.c:375 #14 0xffffffff80ce4d2a in amd64_syscall (td=0xfffffe00322b1490, traced=0) at subr_syscall.c:135 #15 0xffffffff80cceb67 in Xfast_syscall () at /usr/src/sys/amd64/amd64/exception.S:391 #16 0x0000000800b39bec in ?? () Previous frame inner to this frame (corrupt stack?) (kgdb) fr 3 #3 0xffffffff804c5268 in igb_mq_start (ifp=0xfffffe0021566000, m=0xfffffe0cfe9a0600) at buf_ring.h:86 86 panic("buf=%p already enqueue at %d prod=%d cons=%d", (kgdb) list 81 #ifdef DEBUG_BUFRING 82 int i; 83 for (i = br->br_cons_head; i != br->br_prod_head; 84 i = ((i + 1) & br->br_cons_mask)) 85 if(br->br_ring[i] == buf) 86 panic("buf=%p already enqueue at %d prod=%d cons=%d", 87 buf, i, br->br_prod_tail, br->br_cons_tail); 88 #endif 89 critical_enter(); 90 do { (kgdb) p *buf $1 = {b_bufobj = 0x0, b_bcount = 4096, b_caller1 = 0x0, b_data = 0xffffff9c5c600000
, b_error = 0, b_iocmd = 2 '\002', b_ioflags = 2 '\002', b_iooffset = 196608, b_resid = 0, b_iodone = 0, b_blkno = 384, b_offset = 196608, b_bobufs = {tqe_next = 0x0, tqe_prev = 0xfffffe02e5976738}, b_left = 0x0, b_right = 0x0, b_vflags = 2147483648, b_freelist = {tqe_next = 0xffffff9c4d247b70, tqe_prev = 0xffffffff8178a580}, b_qindex = 4, b_flags = 8704, b_xflags = 0 '\0', b_lock = {lock_object = {lo_name = 0xffffffff80fa6026 "bufwait", lo_flags = 108199936, lo_data = 0, lo_witness = 0xffffff8ccd37a500}, lk_lock = 1, lk_exslpfail = 0, lk_timo = 0, lk_pri = 96}, b_bufsize = 0, b_runningbufspace = 0, b_kvabase = 0xffffff9c5c600000
, b_kvaalloc = 0x0, b_kvasize = 16384, b_lblkno = 384, b_vp = 0x0, b_dirtyoff = 0, b_dirtyend = 0, b_rcred = 0xfffffe02b232b700, b_wcred = 0x0, b_saveaddr = 0xffffff9c5c600000, b_pager = {pg_reqpage = 0}, b_cluster = {cluster_head = {tqh_first = 0x0, tqh_last = 0x0}, cluster_entry = {tqe_next = 0x0, tqe_prev = 0x0}}, b_pages = {0x0 }, b_npages = 0, b_dep = {lh_first = 0x0}, b_fsprivate1 = 0x0, b_fsprivate2 = 0x0, b_fsprivate3 = 0x0, b_pin_count = 0} (kgdb) p i $2 = 0 (kgdb) p *txr->br $3 = {br_prod_head = 1260, br_prod_tail = 1260, br_prod_size = 4096, br_prod_mask = 4095, br_drops = 1888684, br_prod_bufs = 3286252, _pad0 = {0 }, br_cons_head = 1259, br_cons_tail = 1259, br_cons_size = 4096, br_cons_mask = 4095, _pad1 = {0 }, br_lock = 0xfffffe0011ca6810, br_ring = 0xffffff8ccd8cd100} This is stable/9 with INVARIANTS. Is this something known? If not, is anybody interested? I have the kernel and the vmcore for further investigation. -- Andriy Gapon