summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorBogdan Hamciuc <bogdan.hamciuc@freescale.com>2013-05-30 15:05:56 (GMT)
committerFleming Andrew-AFLEMING <AFLEMING@freescale.com>2013-05-31 20:11:17 (GMT)
commit229dc6b7173c4c8bbd586e32cbcf871f0bb27d60 (patch)
tree284a5e80328dc89c4445aa3f317953164ca5c501 /drivers/net
parentdd2ca76f9780e502f98b09b8b74cb7b20525e832 (diff)
downloadlinux-fsl-qoriq-229dc6b7173c4c8bbd586e32cbcf871f0bb27d60.tar.xz
dpaa_eth: Create TxConf FQs with HOLDACTIVE flag
Tx Confirmation FQs tend, with originating traffic, to generate a high number of portal interrupts. A machine doing only TCP transmits may well end up having more portal interrupts than its Rx peer. By setting the HOLDACTIVE flag on the Tx Confirmation FQs, we significantly reduce the number of portal interrupts in termination tests. The quantitative effect is anywhere between 2% and 4% on Tx-mainly cores (most visible in UDP_STREAM tests, least visible on TCP_STREAM). Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> Change-Id: I54e2e8287f72da0cfe231af91c624be805ddee17 Reviewed-on: http://git.am.freescale.net:8181/2815 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Sovaiala Cristian-Constantin-B39531 <Cristian.Sovaiala@freescale.com> Reviewed-by: Bucur Madalin-Cristian-B32716 <madalin.bucur@freescale.com> Reviewed-by: Radulescu Ruxandra Ioana-B05472 <ruxandra.radulescu@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c
index db624ec..2d47c8a 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c
@@ -615,6 +615,14 @@ _dpa_fq_alloc(struct list_head *list, struct dpa_fq *dpa_fq)
/* FIXME: why would we want to keep an empty FQ in cache? */
initfq.fqd.fq_ctrl = QM_FQCTRL_PREFERINCACHE;
+#ifdef CONFIG_FSL_DPAA_ETH_SG_SUPPORT
+ /* Try to reduce the number of portal interrupts for
+ * Tx Confirmation FQs.
+ */
+ if (dpa_fq->fq_type == FQ_TYPE_TX_CONFIRM)
+ initfq.fqd.fq_ctrl |= QM_FQCTRL_HOLDACTIVE;
+#endif
+
/* FQ placement */
initfq.we_mask |= QM_INITFQ_WE_DESTWQ;