From owner-freebsd-net@FreeBSD.ORG Wed Mar 30 18:22:42 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 92E7B106564A; Wed, 30 Mar 2011 18:22:42 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: from mail-vw0-f54.google.com (mail-vw0-f54.google.com [209.85.212.54]) by mx1.freebsd.org (Postfix) with ESMTP id 33A698FC18; Wed, 30 Mar 2011 18:22:41 +0000 (UTC) Received: by vws18 with SMTP id 18so1519530vws.13 for ; Wed, 30 Mar 2011 11:22:41 -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; bh=c1rrRLbZVNDUKtpCNiG373zPicv82/19yY40fHosz0o=; b=bgGdhJ4K5t2em5xM8HmJGO06xJqWuBiD7cBNdjh3FQBe7F9L7Me8kaarhM2+tFL78+ vT7ZUPN7S5sREC7U1BGQyDvPymeXDIQ4rrEcSthkYDKWSK+LxqoL6LarNoJ+ezoHV7VE D4i98XLvwYEp4H7oBVbXAn6can95EqxvuJyUU= 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; b=BQkVKPqVgkfLMEBeQfBS4XPXxxbm0Hc75Fk8z6kzAVxjqqLx8b6MGn9/NrbUXNXRU3 FvUPHdEyL0SnSYQWVgHYFwTYD6ZbwYU0zLVOS3nZC3D24g3QL9yFZYYHdY1qJ+tJlkZj 54dw6+YY8d7S4eMipBEzMxOXfDP6p6p8d1uAI= MIME-Version: 1.0 Received: by 10.52.92.161 with SMTP id cn1mr2083723vdb.253.1301509361566; Wed, 30 Mar 2011 11:22:41 -0700 (PDT) Received: by 10.52.167.6 with HTTP; Wed, 30 Mar 2011 11:22:41 -0700 (PDT) In-Reply-To: References: <4D923931.2070606@zonov.org> <4D92BB71.5000900@FreeBSD.org> <4D935DF6.90906@FreeBSD.org> Date: Wed, 30 Mar 2011 11:22:41 -0700 Message-ID: From: Jack Vogel To: Arnaud Lacombe Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-net@freebsd.org, Doug Barton Subject: 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: Wed, 30 Mar 2011 18:22:42 -0000 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. Jack On Wed, Mar 30, 2011 at 10:55 AM, Arnaud Lacombe wrote: > Hi, > > On Wed, Mar 30, 2011 at 1:12 PM, Jack Vogel wrote: > > The code that got put in the driver has a response to this "unrecoverable > > situation", you've flamed me and the code, but you've not demonstrated it > > does not work. > > > I did, in "Message-ID: > ". If > you want to talk code, please tell me where I was wrong. > > To sum up, the current code relies on em_rxeof() to refresh mbufs. > This path is triggered on RX interrupt which never happen if the RX > ring is empty. Now the question I ask you is technical, no criticize > at all of any kind: how do you refresh the mbufs' ring if no RX > interrupt is ever triggered because the card has no descriptor left at > all in its ring ? > > Regards, > - Arnaud >