All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH (net-next.git) 00/18] stmmac: enhance driver performances and update the version.
@ 2015-12-09  8:37 Giuseppe Cavallaro
  2015-12-09  8:37 ` [PATCH (net-next.git) 01/18] stmmac: share reset function between dwmac100 and dwmac1000 Giuseppe Cavallaro
                   ` (17 more replies)
  0 siblings, 18 replies; 25+ messages in thread
From: Giuseppe Cavallaro @ 2015-12-09  8:37 UTC (permalink / raw)
  To: netdev; +Cc: alexandre.torgue, Giuseppe Cavallaro

This is a subset of patches to rework the driver
in order to improve its performances and make it
more robust under stress conditions.

All patches have been ported on STi mainstream kernel branch and
tested on ARM STiH4xx platforms and newer ones.

This series also updates the driver version and prepares it
to include the new development for GMAC4 generation.
This will be on top of these patch train.

In detail, these patches are:

o to rework and improve the internal DMA bus settings

  Fine tuning is mandatory on some platforms for both
  performance and stability issues.

o to rework and optimize the descriptor management.

  This will help a lot on performance side and preparing
  the inclusion on the GMAC4.

o to add a set of optimizations for both xmit and rx functions.

  These will help a lot on performance side and making the driver
  more robust in case of low memory conditions and under some
  stress test, performed for example on IP-STB.

Below some throughput figures obtained on some boxes before and after
the patches.

                       nuttcp (mbps)       iperf (Mbps)
------------------------------------------------------------------
                      tcp     udp          tcp      udp
                   tx   rx   tx  rx      tx   rx   tx  rx
                    ------------------------------------------
   old             680   800 480  506    760  800   600  700
   new             830   880 540  630    840  880   700   800


Fabrice Gasnier (3):
  stmmac: merge get_rx_owner into rx_status routine.
  stmmac: optimize tx clean function
  stmmac: fix phy init when attached to a phy

Giuseppe Cavallaro (15):
  stmmac: share reset function between dwmac100 and dwmac1000
  stmmac: rework DMA bus setting and introduce new platform AXI
    structure
  stmmac: change descriptor layout
  stmmac: remove modulo in stmmac_xmit()
  stmmac: add length field to dma data
  stmmac: add last_segment field to dma data
  stmmac: add is_jumbo field to dma data
  stmmac: optimize tx desc management
  stmmac: set dirty index out of the loop
  stmmac: first frame prep at the end of xmit routine
  stmmac: perf, remove modulo in stmmac_rx()
  stmmac: do not poll phy handler when attach a switch
  stmmac: do not perform zero-copy for rx frames
  stmmac: tune rx copy via threshold.
  stmmac: update version to Oct_2015

 Documentation/devicetree/bindings/net/stmmac.txt   |   45 ++-
 drivers/net/ethernet/stmicro/stmmac/chain_mode.c   |   35 ++-
 drivers/net/ethernet/stmicro/stmmac/common.h       |   34 ++-
 drivers/net/ethernet/stmicro/stmmac/descs.h        |  330 +++++++++-----------
 drivers/net/ethernet/stmicro/stmmac/descs_com.h    |   77 ++---
 drivers/net/ethernet/stmicro/stmmac/dwmac100.h     |    1 -
 drivers/net/ethernet/stmicro/stmmac/dwmac1000.h    |    3 +-
 .../net/ethernet/stmicro/stmmac/dwmac1000_dma.c    |  111 ++++---
 drivers/net/ethernet/stmicro/stmmac/dwmac100_dma.c |   22 +-
 drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h    |   39 +++-
 drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c    |   21 ++
 drivers/net/ethernet/stmicro/stmmac/enh_desc.c     |  226 ++++++++------
 drivers/net/ethernet/stmicro/stmmac/norm_desc.c    |  150 +++++----
 drivers/net/ethernet/stmicro/stmmac/ring_mode.c    |   32 ++-
 drivers/net/ethernet/stmicro/stmmac/stmmac.h       |    6 +-
 .../net/ethernet/stmicro/stmmac/stmmac_ethtool.c   |    2 +-
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c  |  344 ++++++++++++++------
 drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c   |    4 +-
 .../net/ethernet/stmicro/stmmac/stmmac_platform.c  |   42 +++-
 include/linux/stmmac.h                             |   17 +-
 20 files changed, 928 insertions(+), 613 deletions(-)

-- 
1.7.4.4

^ permalink raw reply	[flat|nested] 25+ messages in thread
* [PATCHv2 (net-next.git) 00/18] stmmac: enhance driver performances and update the version
@ 2016-01-04 13:06 Giuseppe Cavallaro
  2016-01-04 13:06 ` [PATCH (net-next.git) 07/18] stmmac: add is_jumbo field to dma data Giuseppe Cavallaro
  0 siblings, 1 reply; 25+ messages in thread
From: Giuseppe Cavallaro @ 2016-01-04 13:06 UTC (permalink / raw)
  To: netdev; +Cc: alexandre.torgue, Giuseppe Cavallaro

This is a subset of patches to rework the driver in order to improve its
performances and make it more robust under stress conditions.

All patches have been ported on STi mainstream kernel branch and
tested on ARM STiH4xx platforms and newer ones.

This series also updates the driver version and prepares it
to include further development to support new chips.

In detail, these patches are:

o to rework and improve the internal DMA bus settings

  Fine tuning is mandatory on some platforms for both
  performance and stability issues.

o to rework and optimize the descriptor management.

  This will help a lot on performance side and preparing
  the inclusion on the GMAC4.

o to add a set of optimizations for both xmit and rx functions.

  These will help a lot on performance side and making the driver
  more robust in case of low memory conditions and under some
  stress test, performed for example on IP-STB.

Below some throughput figures obtained on some boxes before and after
the patches.

                       nuttcp (mbps)       iperf (Mbps)
------------------------------------------------------------------
                      tcp     udp          tcp      udp
                   tx   rx   tx  rx      tx   rx   tx  rx
                    ------------------------------------------
   old             680   800 480  506    760  800   600  700
   new             830   880 540  630    840  880   700   800

==============================================================================

V2: as required, the rx_copybreak is now managed by using ethtool.

==============================================================================
Fabrice Gasnier (3):
  stmmac: merge get_rx_owner into rx_status routine.
  stmmac: optimize tx clean function
  stmmac: fix phy init when attached to a phy

Giuseppe Cavallaro (15):
  stmmac: share reset function between dwmac100 and dwmac1000
  stmmac: rework DMA bus setting and introduce new platform AXI
    structure
  stmmac: change descriptor layout
  stmmac: remove modulo in stmmac_xmit()
  stmmac: add length field to dma data
  stmmac: add last_segment field to dma data
  stmmac: add is_jumbo field to dma data
  stmmac: optimize tx desc management
  stmmac: set dirty index out of the loop
  stmmac: first frame prep at the end of xmit routine
  stmmac: perf, remove modulo in stmmac_rx()
  stmmac: do not poll phy handler when attach a switch
  stmmac: do not perform zero-copy for rx frames
  stmmac: tune rx copy via threshold.
  stmmac: update version to Oct_2015

 Documentation/devicetree/bindings/net/stmmac.txt   |   54 +++-
 drivers/net/ethernet/stmicro/stmmac/chain_mode.c   |   35 ++-
 drivers/net/ethernet/stmicro/stmmac/common.h       |   34 ++-
 drivers/net/ethernet/stmicro/stmmac/descs.h        |  330 +++++++++-----------
 drivers/net/ethernet/stmicro/stmmac/descs_com.h    |   77 ++---
 drivers/net/ethernet/stmicro/stmmac/dwmac100.h     |    1 -
 drivers/net/ethernet/stmicro/stmmac/dwmac1000.h    |    3 +-
 .../net/ethernet/stmicro/stmmac/dwmac1000_dma.c    |  111 ++++---
 drivers/net/ethernet/stmicro/stmmac/dwmac100_dma.c |   22 +--
 drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h    |   39 +++-
 drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c    |   21 ++
 drivers/net/ethernet/stmicro/stmmac/enh_desc.c     |  226 ++++++++------
 drivers/net/ethernet/stmicro/stmmac/norm_desc.c    |  150 +++++----
 drivers/net/ethernet/stmicro/stmmac/ring_mode.c    |   32 ++-
 drivers/net/ethernet/stmicro/stmmac/stmmac.h       |    7 +-
 .../net/ethernet/stmicro/stmmac/stmmac_ethtool.c   |   41 +++-
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c  |  338 +++++++++++++------
 drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c   |    4 +-
 .../net/ethernet/stmicro/stmmac/stmmac_platform.c  |   42 +++-
 include/linux/stmmac.h                             |   17 +-
 20 files changed, 967 insertions(+), 617 deletions(-)

-- 
1.7.4.4

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2016-01-04 12:54 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-09  8:37 [PATCH (net-next.git) 00/18] stmmac: enhance driver performances and update the version Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 01/18] stmmac: share reset function between dwmac100 and dwmac1000 Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 02/18] stmmac: rework DMA bus setting and introduce new platform AXI structure Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 03/18] stmmac: change descriptor layout Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 04/18] stmmac: remove modulo in stmmac_xmit() Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 05/18] stmmac: add length field to dma data Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 06/18] stmmac: add last_segment " Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 07/18] stmmac: add is_jumbo " Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 08/18] stmmac: merge get_rx_owner into rx_status routine Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 09/18] stmmac: optimize tx desc management Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 10/18] stmmac: optimize tx clean function Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 11/18] stmmac: set dirty index out of the loop Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 12/18] stmmac: first frame prep at the end of xmit routine Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 13/18] stmmac: perf, remove modulo in stmmac_rx() Giuseppe Cavallaro
2015-12-09 17:21   ` David Laight
2015-12-10  5:11     ` Giuseppe CAVALLARO
2015-12-10  5:51       ` Giuseppe CAVALLARO
2015-12-09  8:37 ` [PATCH (net-next.git) 14/18] stmmac: do not poll phy handler when attach a switch Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 15/18] stmmac: fix phy init when attached to a phy Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 16/18] stmmac: do not perform zero-copy for rx frames Giuseppe Cavallaro
2015-12-12  1:09   ` David Miller
2015-12-16 11:33     ` Giuseppe CAVALLARO
2015-12-09  8:37 ` [PATCH (net-next.git) 17/18] stmmac: tune rx copy via threshold Giuseppe Cavallaro
2015-12-09  8:37 ` [PATCH (net-next.git) 18/18] stmmac: update version to Oct_2015 Giuseppe Cavallaro
2016-01-04 13:06 [PATCHv2 (net-next.git) 00/18] stmmac: enhance driver performances and update the version Giuseppe Cavallaro
2016-01-04 13:06 ` [PATCH (net-next.git) 07/18] stmmac: add is_jumbo field to dma data Giuseppe Cavallaro

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.