From owner-freebsd-net@FreeBSD.ORG Tue Dec 17 16:49:51 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 523C3AB; Tue, 17 Dec 2013 16:49:51 +0000 (UTC) Received: from mail-qc0-x236.google.com (mail-qc0-x236.google.com [IPv6:2607:f8b0:400d:c01::236]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id EF8401647; Tue, 17 Dec 2013 16:49:50 +0000 (UTC) Received: by mail-qc0-f182.google.com with SMTP id e16so5188566qcx.27 for ; Tue, 17 Dec 2013 08:49:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=CRNLvC4cf31he471kdl8nWCivf0kyKV1StiPcgf9qFc=; b=HYG9LT6cC4+yQz4ue5UytRHP93POzpbX9js6UXL1uyGwAX5+IAOvsHS9Ku4Z2nL2ey 0DA1RwoWYYBHLphxjSKorHF8Vjzk2bAZB8OZqfmcqadL0Eba06ufiJldSNudJfq691ld xRsdnDSFPOt/5tFc0q9hBQ67VFVT2+UpTYSqjNaA5d6IEVZngGjx/m7T4HftKoDSitW9 exeVQbGOMujwHiqXa9bMUU/U5EFYZBgMQ6aD6wDUafv+MQVq3UlOdtfq9Eyk3o8q/7yC fBTM0Y61ikp1Je2Xqd/p8htuIIrUVOQRz1zUOgxGkAhDgA68V8NSW+Hrk8QS7LOzMK09 enLw== MIME-Version: 1.0 X-Received: by 10.224.5.69 with SMTP id 5mr44844723qau.95.1387298990020; Tue, 17 Dec 2013 08:49:50 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.224.53.200 with HTTP; Tue, 17 Dec 2013 08:49:49 -0800 (PST) In-Reply-To: References: Date: Tue, 17 Dec 2013 08:49:49 -0800 X-Google-Sender-Auth: UBJ9vBRx0bCwkOfGN5nspC41RrM Message-ID: Subject: Re: buf_ring in HEAD is racy From: Adrian Chadd To: Michael Tuexen Content-Type: text/plain; charset=ISO-8859-1 Cc: Jack F Vogel , freebsd-net , Ryan Stone 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: Tue, 17 Dec 2013 16:49:51 -0000 Try: Index: sys/dev/ixgbe/ixgbe.c =================================================================== --- sys/dev/ixgbe/ixgbe.c (revision 2995) +++ sys/dev/ixgbe/ixgbe.c (working copy) @@ -5178,6 +5178,7 @@ struct ixgbe_hw *hw = &adapter->hw; u32 missed_rx = 0, bprc, lxon, lxoff, total; u64 total_missed_rx = 0; + u64 odrops = 0; adapter->stats.crcerrs += IXGBE_READ_REG(hw, IXGBE_CRCERRS); adapter->stats.illerrc += IXGBE_READ_REG(hw, IXGBE_ILLERRC); @@ -5308,6 +5309,11 @@ adapter->stats.fcoedwtc += IXGBE_READ_REG(hw, IXGBE_FCOEDWTC); } + /* TX drops */ + for (int i = 0; i < adapter->num_queues; i++) { + odrops += adapter->tx_rings[i].br->br_drops; + } + /* Fill out the OS statistics structure */ ifp->if_ipackets = adapter->stats.gprc; ifp->if_opackets = adapter->stats.gptc; @@ -5317,6 +5323,9 @@ ifp->if_omcasts = adapter->stats.mptc; ifp->if_collisions = 0; + /* TX drops are stored in if_snd for now, not the top level counters */ + ifp->if_snd.ifq_drops = odrops; + /* Rx Errors */ ifp->if_iqdrops = total_missed_rx; ifp->if_ierrors = adapter->stats.crcerrs + adapter->stats.rlec; -adrian