Thread (23 messages) 23 messages, 3 authors, 14d ago

Re: [PATCH net-next v2 00/11] net: ethernet: cortina: Fix Gemini RX buffer management

flat view

From: Paolo Abeni <pabeni@redhat.com>
Date: 2026-10-01 09:51:42

On 9/28/26 10:50, Linus Walleij wrote:
The Gemini ethernet uses a custom software free queue shared by both
ports. Its page metadata, DMA mappings and fragment references are not
managed consistently as pages move through the free queue and RX queues.

Correct the DMA address bookkeeping and synchronization.

Track exact fragment mappings with an XArray and keep
in-flight page metadata in bitmap-allocated slots until all hardware
references have been claimed.

Serialize queue resize against the refill interrupt, harden fragment
validation and teardown, then scale the default queue sizes for systems
with 32 or 64 MiB of RAM.

This series wasn't so complex to begin with but Sashiko and the other
LLMs just find more and more corner cases. It's for the better I
guess.

Before these patches the network driver would crash under strong load
but it does not happen any more after. Tested on the D-Link DIR-685
playing back media and transfering new media using ksmbd while
issuing ping storms.

Assisted-by: LLM
Signed-off-by: Linus Walleij <linusw@kernel.org>
The vast majority of clashiko findings are actually fixes in this
very patch series or pre-existing issues, but I think it has a valid
point on patch 5 (WRT rebuilding ring with odd number of entries
consumed).

Also it looks like patch 11 is mostly against the current netdev
guidance for guard() usage:

https://elixir.bootlin.com/linux/v7.2.8/source/Documentation/process/maintainer-netdev.rst#L407

Thanks,

Paolo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help