Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Mar 2011 11:22:41 -0700
From:      Jack Vogel <jfvogel@gmail.com>
To:        Arnaud Lacombe <lacombar@gmail.com>
Cc:        freebsd-net@freebsd.org, Doug Barton <dougb@freebsd.org>
Subject:   Re: igb(4) won't start with "igb0: Could not setup receive structures"
Message-ID:  <AANLkTi=SX3019AqT%2BP4nYOrBWmpdSJwkC9k1uJy8QB3V@mail.gmail.com>
In-Reply-To: <AANLkTimtuSgv_zZ-VrA2O0PpG51aQ4AmK3JMvAggZF2r@mail.gmail.com>
References:  <4D923931.2070606@zonov.org> <AANLkTimnnDbtVVaK=yhozEmqxTAp3hudNbEVA6F6pbnq@mail.gmail.com> <4D92BB71.5000900@FreeBSD.org> <AANLkTi=z3J2ddUJ%2BcwCD3YWuy8L973k9foC0SQLgTGRC@mail.gmail.com> <4D935DF6.90906@FreeBSD.org> <AANLkTimpoWBUcjKx3rRgwGYb31aush0_AkrULrPA%2BEk9@mail.gmail.com> <AANLkTikphz3arM6L4=%2BiZ7oD_VFYMWmPkvcSGpx-JZGd@mail.gmail.com> <AANLkTimtuSgv_zZ-VrA2O0PpG51aQ4AmK3JMvAggZF2r@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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@gmail.com> wrote:

> Hi,
>
> On Wed, Mar 30, 2011 at 1:12 PM, Jack Vogel <jfvogel@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@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
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTi=SX3019AqT%2BP4nYOrBWmpdSJwkC9k1uJy8QB3V>