From owner-freebsd-net@FreeBSD.ORG Thu Mar 31 21:09:06 2011 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A27CF1065670 for ; Thu, 31 Mar 2011 21:09:06 +0000 (UTC) (envelope-from lacombar@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 66CB28FC16 for ; Thu, 31 Mar 2011 21:09:06 +0000 (UTC) Received: by iyj12 with SMTP id 12so3553008iyj.13 for ; Thu, 31 Mar 2011 14:09:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=w6m8P+XfFxNuI7rB6FjnbtB6dC38pJjWZmmpcsrZ3p0=; b=vE8jF29B4YpFAegcFQnhm8hpXFK90W4xMurJs7xKtN9REYN4vAZlfuGAsPPhZDku+4 Nl4KcNY3vww45agO7rHft2P2wToJOdYv5mGWVShdxJacVa8Z12BsU8SSTtB4wv2dAe6X 1Cy6udniTVWkhAUQjq3vxphoaHP68oWG/OiOk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=UNCQ/KJKUtxuJlzj29iBxcEKSpr4dl1s/NGzlUrw3YYH8aG0EKOe4Xgm8TQYgV7anF aSrJECjD8Miznaw2hTsPF+YidurL4LUseRtY1sT2ITh2dJL6gADXp+YTvA0iF9jVpGQV jDvYUq5F9i2r/KQJg1qvrzWzMD69aT03hIebQ= MIME-Version: 1.0 Received: by 10.42.1.70 with SMTP id 6mr3946197icf.483.1301605745923; Thu, 31 Mar 2011 14:09:05 -0700 (PDT) Received: by 10.42.146.72 with HTTP; Thu, 31 Mar 2011 14:09:05 -0700 (PDT) In-Reply-To: References: Date: Thu, 31 Mar 2011 17:09:05 -0400 Message-ID: From: Arnaud Lacombe To: Jack Vogel Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Cc: freebsd-net@freebsd.org Subject: Re: em(4) hang [Was: Re: igb(4) won't start with "igb0: Could not setup receive structures"] X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 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, 31 Mar 2011 21:09:06 -0000 Hi Jack, On Thu, Mar 31, 2011 at 9:51 AM, Arnaud Lacombe wrote: > [...] > I'll remove part of the changes I made to keep only `rx_forced_refill' > and the associated sysctl, re-run the tests and come back with correct > value, hopefully in a few hours. > Here it is: # sysctl dev.em.0.%desc dev.em.0.%desc: Intel(R) PRO/1000 Network Connection 7.2.2 # sysctl dev.em.0.mac_stats.missed_packets dev.em.0.mac_stats.missed_packets: 917428 # sysctl dev.em.0.debug=3D1 dev.em.0.debug: I-1nterface is RUNNING and INACTIVE em0: hw tdh =3D 975, hw tdt =3D 975 em0: hw rdh =3D 884, hw rdt =3D 885 em0: Tx Queue Status =3D 0 em0: TX descriptors avail =3D 1024 em0: Tx Descriptors avail failure =3D 0 em0: RX discarded packets =3D 0 em0: RX Next to Check =3D 884 em0: RX Next to Refresh =3D 885 -> -1 So the taskqueue cannot be scheduled to run and the driver is stuck. > On Wed, Mar 30, 2011 at 2:22 PM, Jack Vogel wrote: >> Read the code in HEAD, em_local_timer() has a test of ALL the rx queues = and >> will schedule a task that refreshes mbufs if they are empty. This has >> exactly the >> same effect as checking for some interrupt cause, a cause that is not >> available >> when using MSIX on 82574, but this approach works for everything. >> Can you please point me to a reference datasheet (or errata), provided by Intel, about the RX Overrun interrupt not being available with MSI-X on the 82574 ? Currently, I only have access to [0], which precises the following: 7.4 Interrupts 7.4.2 MSI-X Mode [...] The following configuration and parameters are involved: =95 The IVAR.INT_Alloc[4:0] entries map two Tx queues, two Rx queues and ot= her events to 5 interrupt vectors =95 The ICR[24:20] bits reflect specific interrupt causes =95 Five MSI-X interrupt vectors are provided (calculated based on four vectors for queues and one vector for other causes). The requested number of vectors is loaded from the MSI_X_N fields in the EEPROM into the PCIe MSI-X capability structure of the function. 10.2.4.1 Interrupt Cause Read Register - ICR (0x000C0; RC/WC) [...] about bit 24: Other Interrupt. Indicates one of the following interrupts was set: =95 Link Status Change. =95 Receiver Overrun. =95 MDIO Access Complete. =95 Small Receive Packet Detected. =95 Receive ACK Frame Detected. =95 Manageability Event Detected. Thanks in advance, - Arnaud [0]: ftp://download.intel.com/design/network/datashts/82574.pdf