[PATCH 2/6] sfxge: limit software Tx queue size

Gleb Smirnoff glebius at FreeBSD.org
Sat Mar 22 18:29:06 UTC 2014


  Andrew,

On Sat, Mar 22, 2014 at 02:16:24PM +0400, Andrew Rybchenko wrote:
A> > The interaction between sfxge_tx_qdpl_put() and sfxge_tx_packet_add()
A> > is quite complex and I couldn't resist from suggesting you to
A> > simplify the code.
A> >
A> > Can you please look into attached patch?
A> >
A> > - Inline sfxge_tx_qdpl_put() into sfxge_tx_packet_add().
A> > - Simplify the 'locked' logic.
A> > - Add your PATCH 1/6, the mbuf leak fix.
A> > - Add your PATCH 2/6, the SFXGE_TX_DPL_GET_PKT_LIMIT_DEFAULT check.
A> I don't like "locked" flag passed to qdpl_put() function as well.
A> However, I prefer to keep patches granular and avoid mixing of different 
A> changes in single patch. If the initial patch is OK, please, submit it 
A> to repository. Then, I'll rebase your patch, discuss it locally and come 
A> back to you.

As you wish. Committed, thanks.

A> BTW, I see that many drivers use drbr for software Tx queue. What do you 
A> think, would it be beneficial to use it instead of the list implemented 
A> here?

No idea. drbr(9) is definitely better than ifqueue(9), that's all I can
confident state. No idea how drbr(4) compares to the hand made queue of
sxfge(4).

You've got the hardware, you measure :)

Btw, there are some opinions that with modern cards any software
queing is a bad idea. Driver should simply hold as much as hardware
tx ring can hold. There is no yet stable decision about this, just
thoughts floating around.

-- 
Totus tuus, Glebius.


More information about the freebsd-net mailing list