On Mon, Apr 8, 2013 at 1:14 PM, Duvvuru,Venkat Kumar < venkatkumar.duvv...@emulex.com> wrote:
> Hi, > In the transmit path, if enqueue mechanism is used instead of blocking on > the lock, the throughput is not good in some scenarios (especially single > queue, multiple connections). > For example: > if (TRY_LOCK(&wq->tx_lock)) { > status = oce_multiq_transmit(ifp, m, wq); > UNLOCK(&wq->tx_lock); > } else { > status = drbr_enqueue(ifp, wq->br, m); > } > > Instead of the above code where the request is enqueued if I use a normal > LOCK and block on it, it is giving good performance. > > Any suggestions on why the throughput is low in case of enqueue mechanism. > > Thx, > Venkat. > Shouldn't you be triggering a taskqueue to actually transmit the packet in the "failed to acquire lock" case? Otherwise it could be held in the drbr indefinitely. _______________________________________________ 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"