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 <lacom...@gmail.com> wrote:

> Hi,
>
> On Wed, Mar 30, 2011 at 1:12 PM, Jack Vogel <jfvo...@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-wtopikr2...@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
>
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to