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 -- John Baldwin _______________________________________________ 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"