* [PATCH net-next 1/3] net: mvpp2: avoid checking for free aggregated descriptors twice
@ 2018-02-26 14:14 Antoine Tenart
2018-02-26 14:14 ` [PATCH net-next 2/3] net: mvpp2: adjust gso stop wake thresholds Antoine Tenart
2018-02-26 14:14 ` [PATCH net-next 3/3] net: mvpp2: align the ethtool ops definition Antoine Tenart
0 siblings, 2 replies; 6+ messages in thread
From: Antoine Tenart @ 2018-02-26 14:14 UTC (permalink / raw)
To: davem
Cc: Yan Markman, mw, stefanc, thomas.petazzoni, gregory.clement,
miquel.raynal, nadavh, maxime.chevallier, netdev, linux-kernel,
Antoine Tenart
From: Yan Markman <ymarkman@marvell.com>
Avoid repeating the check for free aggregated descriptors when it
already failed at the beginning of the function.
Signed-off-by: Yan Markman <ymarkman@marvell.com>
[Antoine: commit message]
Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
---
drivers/net/ethernet/marvell/mvpp2.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/marvell/mvpp2.c b/drivers/net/ethernet/marvell/mvpp2.c
index 5a1668cdb461..55300b1fe6c0 100644
--- a/drivers/net/ethernet/marvell/mvpp2.c
+++ b/drivers/net/ethernet/marvell/mvpp2.c
@@ -5224,11 +5224,10 @@ static int mvpp2_aggr_desc_num_check(struct mvpp2 *priv,
u32 val = mvpp2_read(priv, MVPP2_AGGR_TXQ_STATUS_REG(cpu));
aggr_txq->count = val & MVPP2_AGGR_TXQ_PENDING_MASK;
- }
-
- if ((aggr_txq->count + num) > MVPP2_AGGR_TXQ_SIZE)
- return -ENOMEM;
+ if ((aggr_txq->count + num) > MVPP2_AGGR_TXQ_SIZE)
+ return -ENOMEM;
+ }
return 0;
}
--
2.14.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH net-next 2/3] net: mvpp2: adjust gso stop wake thresholds
2018-02-26 14:14 [PATCH net-next 1/3] net: mvpp2: avoid checking for free aggregated descriptors twice Antoine Tenart
@ 2018-02-26 14:14 ` Antoine Tenart
2018-02-27 16:13 ` David Miller
2018-02-26 14:14 ` [PATCH net-next 3/3] net: mvpp2: align the ethtool ops definition Antoine Tenart
1 sibling, 1 reply; 6+ messages in thread
From: Antoine Tenart @ 2018-02-26 14:14 UTC (permalink / raw)
To: davem
Cc: Yan Markman, mw, stefanc, thomas.petazzoni, gregory.clement,
miquel.raynal, nadavh, maxime.chevallier, netdev, linux-kernel
From: Yan Markman <ymarkman@marvell.com>
Adjust MVPP2_MAX_TSO_SEGS and stop_threshold/wake_threshold
for better TXQ utilization and performance.
Signed-off-by: Yan Markman <ymarkman@marvell.com>
---
drivers/net/ethernet/marvell/mvpp2.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/marvell/mvpp2.c b/drivers/net/ethernet/marvell/mvpp2.c
index 55300b1fe6c0..1a893ef70eab 100644
--- a/drivers/net/ethernet/marvell/mvpp2.c
+++ b/drivers/net/ethernet/marvell/mvpp2.c
@@ -498,7 +498,7 @@
* skb. As we need a maxium of two descriptors per fragments (1 header, 1 data),
* multiply this value by two to count the maximum number of skb descs needed.
*/
-#define MVPP2_MAX_TSO_SEGS 300
+#define MVPP2_MAX_TSO_SEGS 100
#define MVPP2_MAX_SKB_DESCS (MVPP2_MAX_TSO_SEGS * 2 + MAX_SKB_FRAGS)
/* Dfault number of RXQs in use */
@@ -5810,7 +5810,7 @@ static int mvpp2_txq_init(struct mvpp2_port *port,
txq_pcpu->tso_headers = NULL;
txq_pcpu->stop_threshold = txq->size - MVPP2_MAX_SKB_DESCS;
- txq_pcpu->wake_threshold = txq_pcpu->stop_threshold / 2;
+ txq_pcpu->wake_threshold = txq_pcpu->stop_threshold - 100;
txq_pcpu->tso_headers =
dma_alloc_coherent(port->dev->dev.parent,
--
2.14.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH net-next 3/3] net: mvpp2: align the ethtool ops definition
2018-02-26 14:14 [PATCH net-next 1/3] net: mvpp2: avoid checking for free aggregated descriptors twice Antoine Tenart
2018-02-26 14:14 ` [PATCH net-next 2/3] net: mvpp2: adjust gso stop wake thresholds Antoine Tenart
@ 2018-02-26 14:14 ` Antoine Tenart
1 sibling, 0 replies; 6+ messages in thread
From: Antoine Tenart @ 2018-02-26 14:14 UTC (permalink / raw)
To: davem
Cc: Antoine Tenart, mw, stefanc, ymarkman, thomas.petazzoni,
gregory.clement, miquel.raynal, nadavh, maxime.chevallier, netdev,
linux-kernel
Cosmetic patch to align the ethtool functions to ops definitions. This
patch does not change in any way the driver's behaviour.
Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
---
drivers/net/ethernet/marvell/mvpp2.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/net/ethernet/marvell/mvpp2.c b/drivers/net/ethernet/marvell/mvpp2.c
index 1a893ef70eab..babbb1ceba2a 100644
--- a/drivers/net/ethernet/marvell/mvpp2.c
+++ b/drivers/net/ethernet/marvell/mvpp2.c
@@ -7435,18 +7435,18 @@ static const struct net_device_ops mvpp2_netdev_ops = {
};
static const struct ethtool_ops mvpp2_eth_tool_ops = {
- .nway_reset = phy_ethtool_nway_reset,
- .get_link = ethtool_op_get_link,
- .set_coalesce = mvpp2_ethtool_set_coalesce,
- .get_coalesce = mvpp2_ethtool_get_coalesce,
- .get_drvinfo = mvpp2_ethtool_get_drvinfo,
- .get_ringparam = mvpp2_ethtool_get_ringparam,
- .set_ringparam = mvpp2_ethtool_set_ringparam,
- .get_strings = mvpp2_ethtool_get_strings,
- .get_ethtool_stats = mvpp2_ethtool_get_stats,
- .get_sset_count = mvpp2_ethtool_get_sset_count,
- .get_link_ksettings = phy_ethtool_get_link_ksettings,
- .set_link_ksettings = phy_ethtool_set_link_ksettings,
+ .nway_reset = phy_ethtool_nway_reset,
+ .get_link = ethtool_op_get_link,
+ .set_coalesce = mvpp2_ethtool_set_coalesce,
+ .get_coalesce = mvpp2_ethtool_get_coalesce,
+ .get_drvinfo = mvpp2_ethtool_get_drvinfo,
+ .get_ringparam = mvpp2_ethtool_get_ringparam,
+ .set_ringparam = mvpp2_ethtool_set_ringparam,
+ .get_strings = mvpp2_ethtool_get_strings,
+ .get_ethtool_stats = mvpp2_ethtool_get_stats,
+ .get_sset_count = mvpp2_ethtool_get_sset_count,
+ .get_link_ksettings = phy_ethtool_get_link_ksettings,
+ .set_link_ksettings = phy_ethtool_set_link_ksettings,
};
/* Used for PPv2.1, or PPv2.2 with the old Device Tree binding that
--
2.14.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH net-next 2/3] net: mvpp2: adjust gso stop wake thresholds
2018-02-26 14:14 ` [PATCH net-next 2/3] net: mvpp2: adjust gso stop wake thresholds Antoine Tenart
@ 2018-02-27 16:13 ` David Miller
2018-02-27 17:13 ` Antoine Tenart
0 siblings, 1 reply; 6+ messages in thread
From: David Miller @ 2018-02-27 16:13 UTC (permalink / raw)
To: antoine.tenart
Cc: ymarkman, mw, stefanc, thomas.petazzoni, gregory.clement,
miquel.raynal, nadavh, maxime.chevallier, netdev, linux-kernel
From: Antoine Tenart <antoine.tenart@bootlin.com>
Date: Mon, 26 Feb 2018 15:14:26 +0100
> From: Yan Markman <ymarkman@marvell.com>
>
> Adjust MVPP2_MAX_TSO_SEGS and stop_threshold/wake_threshold
> for better TXQ utilization and performance.
>
> Signed-off-by: Yan Markman <ymarkman@marvell.com>
> ---
> drivers/net/ethernet/marvell/mvpp2.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/marvell/mvpp2.c b/drivers/net/ethernet/marvell/mvpp2.c
> index 55300b1fe6c0..1a893ef70eab 100644
> --- a/drivers/net/ethernet/marvell/mvpp2.c
> +++ b/drivers/net/ethernet/marvell/mvpp2.c
> @@ -498,7 +498,7 @@
> * skb. As we need a maxium of two descriptors per fragments (1 header, 1 data),
> * multiply this value by two to count the maximum number of skb descs needed.
> */
> -#define MVPP2_MAX_TSO_SEGS 300
> +#define MVPP2_MAX_TSO_SEGS 100
> #define MVPP2_MAX_SKB_DESCS (MVPP2_MAX_TSO_SEGS * 2 + MAX_SKB_FRAGS)
>
> /* Dfault number of RXQs in use */
> @@ -5810,7 +5810,7 @@ static int mvpp2_txq_init(struct mvpp2_port *port,
> txq_pcpu->tso_headers = NULL;
>
> txq_pcpu->stop_threshold = txq->size - MVPP2_MAX_SKB_DESCS;
> - txq_pcpu->wake_threshold = txq_pcpu->stop_threshold / 2;
> + txq_pcpu->wake_threshold = txq_pcpu->stop_threshold - 100;
>
This number 100 is a magic constant. If it is related to
MVPP2_MAX_TSO_SEGS, please use that define. Otherwise
define a new one which is descriptive.
Thank you.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next 2/3] net: mvpp2: adjust gso stop wake thresholds
2018-02-27 16:13 ` David Miller
@ 2018-02-27 17:13 ` Antoine Tenart
2018-02-27 17:48 ` Yan Markman
0 siblings, 1 reply; 6+ messages in thread
From: Antoine Tenart @ 2018-02-27 17:13 UTC (permalink / raw)
To: David Miller
Cc: antoine.tenart, ymarkman, mw, stefanc, thomas.petazzoni,
gregory.clement, miquel.raynal, nadavh, maxime.chevallier, netdev,
linux-kernel
Hi David,
On Tue, Feb 27, 2018 at 11:13:06AM -0500, David Miller wrote:
> From: Antoine Tenart <antoine.tenart@bootlin.com>
> > From: Yan Markman <ymarkman@marvell.com>
> > -#define MVPP2_MAX_TSO_SEGS 300
> > +#define MVPP2_MAX_TSO_SEGS 100
> > #define MVPP2_MAX_SKB_DESCS (MVPP2_MAX_TSO_SEGS * 2 + MAX_SKB_FRAGS)
> >
> > /* Dfault number of RXQs in use */
> > @@ -5810,7 +5810,7 @@ static int mvpp2_txq_init(struct mvpp2_port *port,
> > txq_pcpu->tso_headers = NULL;
> >
> > txq_pcpu->stop_threshold = txq->size - MVPP2_MAX_SKB_DESCS;
> > - txq_pcpu->wake_threshold = txq_pcpu->stop_threshold / 2;
> > + txq_pcpu->wake_threshold = txq_pcpu->stop_threshold - 100;
> >
>
> This number 100 is a magic constant. If it is related to
> MVPP2_MAX_TSO_SEGS, please use that define. Otherwise
> define a new one which is descriptive.
I agree. I'll ask Yan about it and update if possible.
Thanks!
Antoine
--
Antoine Ténart, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH net-next 2/3] net: mvpp2: adjust gso stop wake thresholds
2018-02-27 17:13 ` Antoine Tenart
@ 2018-02-27 17:48 ` Yan Markman
0 siblings, 0 replies; 6+ messages in thread
From: Yan Markman @ 2018-02-27 17:48 UTC (permalink / raw)
To: Antoine Tenart, David Miller
Cc: mw@semihalf.com, Stefan Chulski,
thomas.petazzoni@free-electrons.com,
gregory.clement@free-electrons.com,
miquel.raynal@free-electrons.com, Nadav Haklai,
maxime.chevallier@bootlin.com, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
I will make this tomorrow.
Thanks for attention!
Best regards
Yan Markman
Tel. 05-44732819
-----Original Message-----
From: Antoine Tenart [mailto:antoine.tenart@bootlin.com]
Sent: Tuesday, February 27, 2018 7:14 PM
To: David Miller <davem@davemloft.net>
Cc: antoine.tenart@bootlin.com; Yan Markman <ymarkman@marvell.com>; mw@semihalf.com; Stefan Chulski <stefanc@marvell.com>; thomas.petazzoni@free-electrons.com; gregory.clement@free-electrons.com; miquel.raynal@free-electrons.com; Nadav Haklai <nadavh@marvell.com>; maxime.chevallier@bootlin.com; netdev@vger.kernel.org; linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next 2/3] net: mvpp2: adjust gso stop wake thresholds
Hi David,
On Tue, Feb 27, 2018 at 11:13:06AM -0500, David Miller wrote:
> From: Antoine Tenart <antoine.tenart@bootlin.com>
> > From: Yan Markman <ymarkman@marvell.com>
> > -#define MVPP2_MAX_TSO_SEGS 300
> > +#define MVPP2_MAX_TSO_SEGS 100
> > #define MVPP2_MAX_SKB_DESCS (MVPP2_MAX_TSO_SEGS * 2 + MAX_SKB_FRAGS)
> >
> > /* Dfault number of RXQs in use */
> > @@ -5810,7 +5810,7 @@ static int mvpp2_txq_init(struct mvpp2_port *port,
> > txq_pcpu->tso_headers = NULL;
> >
> > txq_pcpu->stop_threshold = txq->size - MVPP2_MAX_SKB_DESCS;
> > - txq_pcpu->wake_threshold = txq_pcpu->stop_threshold / 2;
> > + txq_pcpu->wake_threshold = txq_pcpu->stop_threshold - 100;
> >
>
> This number 100 is a magic constant. If it is related to
> MVPP2_MAX_TSO_SEGS, please use that define. Otherwise define a new
> one which is descriptive.
I agree. I'll ask Yan about it and update if possible.
Thanks!
Antoine
--
Antoine Ténart, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-02-27 17:48 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-26 14:14 [PATCH net-next 1/3] net: mvpp2: avoid checking for free aggregated descriptors twice Antoine Tenart
2018-02-26 14:14 ` [PATCH net-next 2/3] net: mvpp2: adjust gso stop wake thresholds Antoine Tenart
2018-02-27 16:13 ` David Miller
2018-02-27 17:13 ` Antoine Tenart
2018-02-27 17:48 ` Yan Markman
2018-02-26 14:14 ` [PATCH net-next 3/3] net: mvpp2: align the ethtool ops definition Antoine Tenart
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.