ixgbe rx & tx locks
John Baldwin
jhb at freebsd.org
Fri Aug 17 14:28:15 UTC 2012
On Thursday, August 16, 2012 5:40:35 pm Jack Vogel wrote:
> Thanks John, am seeing this, just busy on another matter, will get to it
> asap.
Vijay, can you test this to see if it helps with your test case?
> Jack
>
>
> On Thu, Aug 16, 2012 at 2:36 PM, John Baldwin <jhb at freebsd.org> wrote:
>
> > On Thursday, August 16, 2012 8:35:53 am John Baldwin wrote:
> > > On Monday, August 13, 2012 6:17:53 pm Jack Vogel wrote:
> > > > After looking at the code again I think this is just what's happening,
> > > > mq_start
> > > > will schedule the task when it can't get the lock (due to the
interrupt
> > > > already
> > > > holding it presumeably), so you get the tasklet code in contention
> > with the
> > > > interrupt.
> > > >
> > > > Anyone with a clever notion of how to do things better?
> > >
> > > Are you queueing a task that does both RX and TX? That was a bug I
fixed
> > > in igb that caused out-of-order packet processing for RX with igb. igb
> > > uses a smaller task for when it's start routine fails that only tries to
> > > restart transmission but doesn't do fullblown interrupt handling.
> > >
> > > Here's a possible patch (compiles, not run-tested) to implement this for
> > > ixgbe:
> > >
> > > http://www.FreeBSD.org/~jhb/patches/ixgbe_txq_task.patch
> >
> > Actually, it looks like recent changes to the watchdog handling have
> > reintroduced a variant of this bug. They schedule the full RX/TX task
> > to run anytime the timer fires and there are pending TX completions
> > that are in progress. This seems a bit odd as in the normal case you
> > will get a TX completion interrupt once there is something to do. OTOH,
> > it adds another instance of duplicate RX processing which is much worse
> > than what this is trying to fix. I've updated this patch to disable
> > that bit of the watchdog handler in both igb and ixgbe:
> >
> > http://www.FreeBSD.org/~jhb/patches/ixgbe_txq_task2.patch
> >
> > --
> > John Baldwin
> >
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>
--
John Baldwin
More information about the freebsd-net
mailing list