mbox series

[net-next,v5,0/5] *Add MTU change with stmmac interface running

Message ID 20220723142933.16030-1-ansuelsmth@gmail.com (mailing list archive)
Headers show
Series *Add MTU change with stmmac interface running | expand

Message

Christian Marangi July 23, 2022, 2:29 p.m. UTC
This series is to permit MTU change while the interface is running.
Major rework are needed to permit to allocate a new dma conf based on
the new MTU before applying it. This is to make sure there is enough
space to allocate all the DMA queue before releasing the stmmac driver.

This was tested with a simple way to stress the network while the
interface is running.

2 ssh connection to the device:
- One generating simple traffic with while true; do free; done
- The other making the mtu change with a delay of 1 second

The connection is correctly stopped and recovered after the MTU is changed.

The first 2 patch of this series are minor fixup that fix problems
presented while testing this. One fix a problem when we renable a queue
while we are generating a new dma conf. The other is a corner case that
was notice while stressing the driver and turning down the interface while
there was some traffic.

(this is a follow-up of a simpler patch that wanted to add the same
feature. It was suggested to first try to check if it was possible to
apply the new configuration. Posting as RFC as it does major rework for
the new concept of DMA conf)

v5:
- Fix double space for kdoc
- Fix missing kdoc for dma_conf in __init_dma_tx_desc_rings
v4:
- Add additional stmmac_set_rx_mode after stmmac_open
- Disconnect phylink first on stmmac release
v3:
- Fix compilation error reported by kernel test bot
  (missing dma_confg changes to tc and selftest source)
v2:
- Put it out of RFC

Christian Marangi (5):
  net: ethernet: stmicro: stmmac: move queue reset to dedicated
    functions
  net: ethernet: stmicro: stmmac: first disable all queues and
    disconnect in release
  net: ethernet: stmicro: stmmac: move dma conf to dedicated struct
  net: ethernet: stmicro: stmmac: generate stmmac dma conf before open
  net: ethernet: stmicro: stmmac: permit MTU change with interface up

 .../net/ethernet/stmicro/stmmac/chain_mode.c  |   6 +-
 .../net/ethernet/stmicro/stmmac/ring_mode.c   |   4 +-
 drivers/net/ethernet/stmicro/stmmac/stmmac.h  |  21 +-
 .../ethernet/stmicro/stmmac/stmmac_ethtool.c  |   4 +-
 .../net/ethernet/stmicro/stmmac/stmmac_main.c | 723 +++++++++++-------
 .../stmicro/stmmac/stmmac_selftests.c         |   8 +-
 .../net/ethernet/stmicro/stmmac/stmmac_tc.c   |   6 +-
 7 files changed, 459 insertions(+), 313 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org July 26, 2022, 2:50 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (master)
by Jakub Kicinski <kuba@kernel.org>:

On Sat, 23 Jul 2022 16:29:28 +0200 you wrote:
> This series is to permit MTU change while the interface is running.
> Major rework are needed to permit to allocate a new dma conf based on
> the new MTU before applying it. This is to make sure there is enough
> space to allocate all the DMA queue before releasing the stmmac driver.
> 
> This was tested with a simple way to stress the network while the
> interface is running.
> 
> [...]

Here is the summary with links:
  - [net-next,v5,1/5] net: ethernet: stmicro: stmmac: move queue reset to dedicated functions
    https://git.kernel.org/netdev/net-next/c/f9ec5723c3db
  - [net-next,v5,2/5] net: ethernet: stmicro: stmmac: first disable all queues and disconnect in release
    https://git.kernel.org/netdev/net-next/c/7028471edb64
  - [net-next,v5,3/5] net: ethernet: stmicro: stmmac: move dma conf to dedicated struct
    https://git.kernel.org/netdev/net-next/c/8531c80800c1
  - [net-next,v5,4/5] net: ethernet: stmicro: stmmac: generate stmmac dma conf before open
    https://git.kernel.org/netdev/net-next/c/ba39b344e924
  - [net-next,v5,5/5] net: ethernet: stmicro: stmmac: permit MTU change with interface up
    https://git.kernel.org/netdev/net-next/c/347007968744

You are awesome, thank you!