On Tue, 29 Sep 2026 00:30:11 +0300, Vitaliy Sochnev wrote:
> The driver hands one RX descriptor at a time to the hardware and points
> every descriptor at the same buffer, so the ring holds a single frame.
> The legacy stack mostly copes, but lwIP opens a TCP window and the peer
> sends segments back to back. On QEMU with e1000, lwIP wget of 1 MB
> takes about 300 s; virtio-net transfers 20 MiB in under a second.
>
> Give each descriptor its own buffer and keep the ring filled. The ring
> grows to 16 descriptors. Descriptors are handed back one cache line at
> a time, with one line held back, so that flushing a descriptor never
> overwrites a neighbour the hardware has written back meanwhile on
> platforms without coherent DMA.
>
> [...]
Applied to u-boot-net branch for-next, thanks!
[1/1] net: e1000: use all RX descriptors
commit: 1041a519902041ea727fee0be6c3453341dfc86f
Best regards,
--
Jerome Forissier <[email protected]>