1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-19 10:53:58 +00:00

Alter the mq_start routine to do a TRYLOCK and call to the locked routine

rather than just queueing. The former code was an attempt at getting
UDP performance up, but there have been customer reports of problems with it,
so the ixgbe approach seems the best solution for now.
This commit is contained in:
Jack F Vogel 2013-08-13 00:25:39 +00:00
parent c68534f1d5
commit 83cef45266
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=254264

View File

@ -972,7 +972,13 @@ igb_mq_start(struct ifnet *ifp, struct mbuf *m)
que = &adapter->queues[i];
err = drbr_enqueue(ifp, txr->br, m);
taskqueue_enqueue(que->tq, &txr->txq_task);
if (err)
return (err);
if (IGB_TX_TRYLOCK(txr)) {
err = igb_mq_start_locked(ifp, txr);
IGB_TX_UNLOCK(txr);
} else
taskqueue_enqueue(que->tq, &txr->txq_task);
return (err);
}