[BPI-R4] any plans for jumbo frame support?

I applied your patches from the 6.18-jumbo-refactor branch on top of Frank’s 6.18-jumbo branch (which I think is what you also used).

It seems this only happens when there is some use of the interface. In my case the interface was down, but I still had the vlans set up. When I remove all vlans, then down eth1 I changed the mtu without any issues. If I only down eth1 it still happened.

I never tested it with vlans before. Thanks for the feedback. I’ll check what I can do. Can you please provide the dmesg messages/ other outputs?

Thanks!

I double checked the mtk_eth_soc code against your branch and noticed there were a few differences. When I use exactly the code from your branch the system seems to work without issues up to now. It seems that the code differences caused the driver to release and reallocate the pools more often (i.e., on mtu change and link loss). I am not sure something else would cause a release/realloc of the pool, and if so it that would still cause issues. I’ll monitor for a while and report back if I see other issues.

Apologies for the confusion, somehow I missed the code differences the first time.

Throughput between various machines is fantastic, reaching 9-10 gbit consistently depending on the combination of machines (it seems a bit slower receiving from some Marvell based systems). With the previous 2022 bytes mtu limit it was never really exceeding 8.5, mostly around 7.8.

-Wilfried

1 Like

Got response from MTK

You previously mentioned the issue of being unable to automatically reallocate the RX buffer when eth->rx_buf_len changes. We have improved this through the following patches for your reference. a7ee029fdce5c712c9e48b83eb2a48c6503c975d - openwrt/feeds/mtk-openwrt-feeds - Gitiles 54f68b94df5da1d91de4f8b3fd4a24dbf75d6dfa - openwrt/feeds/mtk-openwrt-feeds - Gitiles

1 Like

Actually this now only happens on a reset (the Destroy/Allocated messages for debugging):

2026-06-05T06:35:39.552270-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet eth0: NETDEV WATCHDOG: CPU: 2: transmit queue 3 timed out 5010 ms
2026-06-05T06:35:39.552312-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet eth0: transmit timed out
2026-06-05T06:35:39.759780-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet eth0: Link is Down
2026-06-05T06:35:39.759819-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet en-lan0: Link is Down
2026-06-05T06:35:40.059809-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Destroy page pool 15 (0000000082aa6b33)
2026-06-05T06:35:40.059853-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Destroy page pool 14 (000000004557608c)
2026-06-05T06:35:40.379802-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Destroy page pool 16 (00000000404f2379)
2026-06-05T06:35:40.379845-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Destroy page pool 17 (000000002f1635d9)
2026-06-05T06:35:40.379851-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Destroy page pool 18 (0000000023df6579)
2026-06-05T06:35:40.379883-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Destroy page pool 19 (00000000c12eca25)
2026-06-05T06:35:40.379890-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Destroy page pool 20 (000000005d0ffbfd)
2026-06-05T06:35:40.389809-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Destroy page pool 21 (00000000a7486c15)
2026-06-05T06:35:40.389850-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Destroy page pool 22 (0000000020a7a126)
2026-06-05T06:35:40.589773-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: warm reset failed
2026-06-05T06:35:40.609791-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Allocated page pool 23 (000000007c757762)
2026-06-05T06:35:40.609832-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Allocated page pool 24 (00000000093c7742)
2026-06-05T06:35:40.609860-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Allocated page pool 25 (00000000d33ca2cd)
2026-06-05T06:35:40.727359-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Allocated page pool 26 (000000004d66a525)
2026-06-05T06:35:40.727399-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Allocated page pool 27 (0000000035b9ba1d)
2026-06-05T06:35:40.727406-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Allocated page pool 28 (0000000090f06102)
2026-06-05T06:35:40.727411-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Allocated page pool 29 (000000000230ede4)
2026-06-05T06:35:40.727417-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Allocated page pool 30 (0000000039297c2a)
2026-06-05T06:35:40.727422-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet: Allocated page pool 31 (0000000092220bd4)
2026-06-05T06:35:40.727427-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet eth0: configuring for fixed/internal link mode
2026-06-05T06:35:40.727433-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet eth0: mtk_open: set max-mtu of mac #0 to 9190 (9K+XGMII)
2026-06-05T06:35:40.727438-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet eth0: Link is Up - 10Gbps/Full - flow control rx/tx
2026-06-05T06:35:40.727453-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet en-lan0: configuring for inband/10gbase-r link mode
2026-06-05T06:35:40.859799-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet en-lan0: mtk_open: set max-mtu of mac #1 to 9190 (9K+XGMII)
2026-06-05T06:35:40.859833-04:00 nostromo kernel: mtk_soc_eth 15100000.ethernet en-lan0: Link is Up - 10Gbps/Full - flow control off
2026-06-05T06:36:40.409773-04:00 nostromo kernel: page_pool_release_retry() stalled pool shutdown: id 15, 4 inflight 60 sec
2026-06-05T06:36:40.729790-04:00 nostromo kernel: page_pool_release_retry() stalled pool shutdown: id 20, 4 inflight 60 sec
2026-06-05T06:36:40.729828-04:00 nostromo kernel: page_pool_release_retry() stalled pool shutdown: id 21, 7 inflight 60 sec
2026-06-05T06:36:40.729835-04:00 nostromo kernel: page_pool_release_retry() stalled pool shutdown: id 22, 1 inflight 60 sec
2026-06-05T06:37:40.729786-04:00 nostromo kernel: page_pool_release_retry() stalled pool shutdown: id 15, 4 inflight 120 sec
2026-06-05T06:37:41.049777-04:00 nostromo kernel: page_pool_release_retry() stalled pool shutdown: id 20, 4 inflight 120 sec
2026-06-05T06:37:41.049813-04:00 nostromo kernel: page_pool_release_retry() stalled pool shutdown: id 21, 7 inflight 120 sec
2026-06-05T06:37:41.049820-04:00 nostromo kernel: page_pool_release_retry() stalled pool shutdown: id 22, 1 inflight 120 sec

It’s going through a free/alloc cycle when the reset happens, and I assume some pending packets during that reset keep the buffers marked as “in flight”.

The reset happens without the jumbo patches, they started when I moved to 6.18 kernels, so that they are happening is not related to jumbo packets. And it’s happening on an interface that has no jumbo packets enabled (but the reset affects all interfaces). The page_pool_release issue only happens with the jumbo patches, but that seems reasonable given they did change some of the page alloc mechanisms if I read them correctly.

The reset is triggered early in a heavy lan->wan transfer, it seems the eth0 connection to the internal switch gets funky and stops all outgoing packets while still receiving. Still trying to figure that one out.

I’ll have a look at the patches mentioned, see if they fix the page_pool_release issue.

Have you applied the the new patches on top of my ported patches or on top of @DeadMeat’s changes? Maybe it is not compatible…

The patches should fix the problem that you cannot just set mtu at any state of the interface only bring up mac first then down,then set mtu and bring up again

Will try that tonight.