Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Apr 2013 17:14:59 +0000
From:      "Duvvuru,Venkat Kumar" <VenkatKumar.Duvvuru@Emulex.Com>
To:        "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>
Subject:   drbr_enqueue - OCE driver - Freebsd 9.1
Message-ID:  <BF3270C86E8B1349A26C34E4EC1C44CB2B82015D@CMEXMB1.ad.emulex.com>

next in thread | raw e-mail | index | archive | help
Hi,
In the transmit path, if enqueue mechanism is used instead of blocking on t=
he lock, the throughput is not good in some scenarios (especially single qu=
eue, multiple connections).
For example:
if (TRY_LOCK(&wq->tx_lock)) {
           status =3D oce_multiq_transmit(ifp, m, wq);
           UNLOCK(&wq->tx_lock);
     } else {
           status =3D drbr_enqueue(ifp, wq->br, m);
     }

Instead of the above code where the request is enqueued if I use a normal L=
OCK and block on it, it is giving good performance.

Any suggestions on why the throughput is low in case of enqueue mechanism.

Thx,
Venkat.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BF3270C86E8B1349A26C34E4EC1C44CB2B82015D>