Thread (12 messages) flat view 12 messages, 4 authors, 2014-06-11

RE: [PATCH v4 5/6] net: fec: Add Scatter/gather support

From: David Laight <hidden>
Date: 2014-06-10 12:03:28

From: fugang.duan@freescale.com 
From: David Laight <redacted> Sent: Tuesday, June 10, 2014 7:11 PM
quoted
To: Duan Fugang-B38611; davem@davemloft.net
Cc: netdev@vger.kernel.org; ezequiel.garcia@free-electrons.com; Li Frank-
B20596; eric.dumazet@gmail.com
Subject: RE: [PATCH v4 5/6] net: fec: Add Scatter/gather support

From: Fugang Duan
quoted
Add Scatter/gather support for FEC.
This feature allows to improve outbound throughput performance.
...
quoted
+static int fec_enet_get_free_txdesc_num(struct fec_enet_private *fep)
+{
+	int entries;
+
+	entries = ((const char *)fep->dirty_tx -
+			(const char *)fep->cur_tx) / fep->bufdesc_size;
+
+	return (fep->cur_tx >= fep->dirty_tx) ?
+		entries += fep->tx_ring_size : entries; }
...
quoted
Actually do you ever use the last entry?
If you do then the full and empty conditions are not separated.
Don't use the last entry. When it is full condition, cur_tx is the last entry.
If (fep->cur_tx == fep->dirty_tx)
	Empty
If (fep->cur_tx == fep->dirty_tx - 1)
	Full

Since the patch set introduces tx_stop_threshold and tx_wake_threshold,
it never uses the rest of entry while
Free entry number is less than tx_stop_threshold.
In which case I'd expect fec_enet_get_free_txdesc_num() to return
one less than it does currently.
Maybe the check for 'enough space' is 'needed < fec_enet_get_free_txdesc_num()'
(rather than <=)

	David
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help