igb(4) won't start with "igb0: Could not setup receive structures"

Jack Vogel jfvogel at gmail.com
Wed Mar 30 18:22:42 UTC 2011


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 <lacombar at gmail.com> wrote:

> Hi,
>
> On Wed, Mar 30, 2011 at 1:12 PM, Jack Vogel <jfvogel at gmail.com> 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:
> <AANLkTikQ+Ccb5jUPNC8sYMC6c6yCpmSk-wtOpiKr2kDg at mail.gmail.com>". 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
>


More information about the freebsd-net mailing list